鱼C论坛

 找回密码
 立即注册
查看: 1899|回复: 16

[已解决]求问解这个题的思路是啥?

[复制链接]
发表于 2016-11-28 22:00:51 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编写一个程序实现一个整数,长整数,浮点数和双精度数除以2的计算,要求所有类型的数除2只使用一个函数。

求各位大神指点一下! 感激不尽!
最佳答案
2016-11-29 20:43:09
C语言指针实现
  1. #include <stdio.h>

  2. void fun(void *num,int type);

  3. int main()
  4. {
  5.         int a= 5;
  6.         long b = 4;
  7.         float c = 9;
  8.         double d = 15;
  9.         fun(&a,0);
  10.         fun(&b,1);
  11.         fun(&c,2);
  12.         fun(&d,3);
  13.         printf("%d\n",a);
  14.         printf("%ld\n",b);
  15.         printf("%f\n",c);
  16.         printf("%lf\n",d);
  17.         return 0;
  18. }

  19. void fun(void *num, int type)
  20. {
  21.     int *p0;
  22.     long *p1;
  23.     float *p2;
  24.     double *p3;
  25.     switch(type)
  26.     {
  27.     case 0:
  28.         p0 = (int *)num;
  29.         *p0 /= 2;
  30.         break;
  31.     case 1:
  32.         p1 = (long *)num;
  33.         *p1 /= 2;
  34.         break;
  35.     case 2:
  36.         p2 = (float *)num;
  37.         *p2 /= 2;
  38.         break;
  39.     case 3:
  40.         p3 = (double *)num;
  41.         *p3 /= 2;
  42.         break;
  43.     default:
  44.         printf("type incorrect!\n");
  45.     }
  46. }
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +2 收起 理由
致年轻的我们 + 5 + 5 + 2 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-28 23:05:41 | 显示全部楼层
帮你顶下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-29 17:05:00 | 显示全部楼层
用的是C++的函数重载
  1. #include <iostream>

  2. //C++函数重载
  3. int fun(int num);
  4. long fun(long num);
  5. float fun(float num);
  6. double fun(double num);

  7. int main()
  8. {
  9.         int a = 2;
  10.         long b = 4;
  11.         float c = 8.0;
  12.         double d = 15.0;
  13.         //C++输出
  14.         std::cout<< fun(a) <<std::endl;
  15.         std::cout<< fun(b) <<std::endl;
  16.         std::cout<< fun(c) <<std::endl;
  17.         std::cout<< fun(d) <<std::endl;
  18.         //C语言输出
  19.         printf("%d\n",fun(a));
  20.         printf("%ld\n",fun(b));
  21.         printf("%f\n",fun(c));
  22.         printf("%lf\n",fun(d));
  23. }

  24. int fun(int num)
  25. {
  26.         return num/2;
  27. }

  28. long fun(long num)
  29. {
  30.         return num/2;
  31. }

  32. float fun(float num)
  33. {
  34.         return num/2.0;
  35. }

  36. double fun(double num)
  37. {
  38.         return num/2.0;
  39. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-29 20:19:55 From FishC Mobile | 显示全部楼层
致年轻的我们 发表于 2016-11-29 17:05
用的是C++的函数重载

有用c做得方法么 c++ 我没学 函数重载不懂啥意思… gg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-29 20:43:09 | 显示全部楼层    本楼为最佳答案   
C语言指针实现
  1. #include <stdio.h>

  2. void fun(void *num,int type);

  3. int main()
  4. {
  5.         int a= 5;
  6.         long b = 4;
  7.         float c = 9;
  8.         double d = 15;
  9.         fun(&a,0);
  10.         fun(&b,1);
  11.         fun(&c,2);
  12.         fun(&d,3);
  13.         printf("%d\n",a);
  14.         printf("%ld\n",b);
  15.         printf("%f\n",c);
  16.         printf("%lf\n",d);
  17.         return 0;
  18. }

  19. void fun(void *num, int type)
  20. {
  21.     int *p0;
  22.     long *p1;
  23.     float *p2;
  24.     double *p3;
  25.     switch(type)
  26.     {
  27.     case 0:
  28.         p0 = (int *)num;
  29.         *p0 /= 2;
  30.         break;
  31.     case 1:
  32.         p1 = (long *)num;
  33.         *p1 /= 2;
  34.         break;
  35.     case 2:
  36.         p2 = (float *)num;
  37.         *p2 /= 2;
  38.         break;
  39.     case 3:
  40.         p3 = (double *)num;
  41.         *p3 /= 2;
  42.         break;
  43.     default:
  44.         printf("type incorrect!\n");
  45.     }
  46. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-29 22:49:06 From FishC Mobile | 显示全部楼层
致年轻的我们 发表于 2016-11-29 20:43
C语言指针实现

好厉害啊…你是在海口么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-29 23:09:23 From FishC Mobile | 显示全部楼层
致年轻的我们 发表于 2016-11-29 20:43
C语言指针实现

好厉害啊!!!请问你是在海口吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-30 09:22:53 From FishC Mobile | 显示全部楼层
阿撩 发表于 2016-11-29 23:09
好厉害啊!!!请问你是在海口吗?

是啊!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-1 19:51:00 | 显示全部楼层

我也是!!!你在读书么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-1 20:24:35 | 显示全部楼层
阿撩 发表于 2016-12-1 19:51
我也是!!!你在读书么?

是的,学生党
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-1 20:26:02 | 显示全部楼层

我天!!!你在哪里读?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-1 21:41:45 | 显示全部楼层
阿撩 发表于 2016-12-1 20:26
我天!!!你在哪里读?

海南大学
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-1 21:43:30 | 显示全部楼层

可以加个好友吗!!!我天 太近了。。。你是计算机专业的吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-1 22:03:48 | 显示全部楼层
阿撩 发表于 2016-12-1 21:43
可以加个好友吗!!!我天 太近了。。。你是计算机专业的吗?

机械电子,大二,你呢?我的扣扣853425548
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-1 22:06:08 | 显示全部楼层
致年轻的我们 发表于 2016-12-1 22:03
机械电子,大二,你呢?我的扣扣853425548

加你了!!!看扣扣!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-1 22:25:20 | 显示全部楼层
重载大概的定义就是声明相同名字的函数,参数的变量可以不同

根部参数的类型调用对应的同名不同内容的函数。

...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-1 22:32:52 | 显示全部楼层
四十二 发表于 2016-12-1 22:25
重载大概的定义就是声明相同名字的函数,参数的变量可以不同

根部参数的类型调用对应的同名不同内容的函 ...

嗯嗯 谢谢! 虽然好像说是C++的内容 我才学C 还不大懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-10 05:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表