阿撩 发表于 2016-11-28 22:00:51

求问解这个题的思路是啥?

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

求各位大神指点一下! 感激不尽!

Anny黄 发表于 2016-11-28 23:05:41

帮你顶下

致年轻的我们 发表于 2016-11-29 17:05:00

用的是C++的函数重载{:10_254:}
#include <iostream>

//C++函数重载
int fun(int num);
long fun(long num);
float fun(float num);
double fun(double num);

int main()
{
        int a = 2;
        long b = 4;
        float c = 8.0;
        double d = 15.0;
        //C++输出
        std::cout<< fun(a) <<std::endl;
        std::cout<< fun(b) <<std::endl;
        std::cout<< fun(c) <<std::endl;
        std::cout<< fun(d) <<std::endl;
        //C语言输出
        printf("%d\n",fun(a));
        printf("%ld\n",fun(b));
        printf("%f\n",fun(c));
        printf("%lf\n",fun(d));
}

int fun(int num)
{
        return num/2;
}

long fun(long num)
{
        return num/2;
}

float fun(float num)
{
        return num/2.0;
}

double fun(double num)
{
        return num/2.0;
}

阿撩 发表于 2016-11-29 20:19:55

致年轻的我们 发表于 2016-11-29 17:05
用的是C++的函数重载

有用c做得方法么 c++ 我没学 函数重载不懂啥意思… gg {:10_266:}

致年轻的我们 发表于 2016-11-29 20:43:09

C语言指针实现
#include <stdio.h>

void fun(void *num,int type);

int main()
{
        int a= 5;
        long b = 4;
        float c = 9;
        double d = 15;
        fun(&a,0);
        fun(&b,1);
        fun(&c,2);
        fun(&d,3);
        printf("%d\n",a);
        printf("%ld\n",b);
        printf("%f\n",c);
        printf("%lf\n",d);
        return 0;
}

void fun(void *num, int type)
{
    int *p0;
    long *p1;
    float *p2;
    double *p3;
    switch(type)
    {
    case 0:
      p0 = (int *)num;
      *p0 /= 2;
      break;
    case 1:
      p1 = (long *)num;
      *p1 /= 2;
      break;
    case 2:
      p2 = (float *)num;
      *p2 /= 2;
      break;
    case 3:
      p3 = (double *)num;
      *p3 /= 2;
      break;
    default:
      printf("type incorrect!\n");
    }
}

阿撩 发表于 2016-11-29 22:49:06

致年轻的我们 发表于 2016-11-29 20:43
C语言指针实现

好厉害啊…你是在海口么?

阿撩 发表于 2016-11-29 23:09:23

致年轻的我们 发表于 2016-11-29 20:43
C语言指针实现

好厉害啊!!!请问你是在海口吗?

致年轻的我们 发表于 2016-11-30 09:22:53

阿撩 发表于 2016-11-29 23:09
好厉害啊!!!请问你是在海口吗?

是啊!

阿撩 发表于 2016-12-1 19:51:00

致年轻的我们 发表于 2016-11-30 09:22
是啊!

我也是!!!你在读书么?

致年轻的我们 发表于 2016-12-1 20:24:35

阿撩 发表于 2016-12-1 19:51
我也是!!!你在读书么?

是的,学生党

阿撩 发表于 2016-12-1 20:26:02

致年轻的我们 发表于 2016-12-1 20:24
是的,学生党

我天!!!你在哪里读?

致年轻的我们 发表于 2016-12-1 21:41:45

阿撩 发表于 2016-12-1 20:26
我天!!!你在哪里读?

海南大学

阿撩 发表于 2016-12-1 21:43:30

致年轻的我们 发表于 2016-12-1 21:41
海南大学

可以加个好友吗!!!我天 太近了。。。你是计算机专业的吗?

致年轻的我们 发表于 2016-12-1 22:03:48

阿撩 发表于 2016-12-1 21:43
可以加个好友吗!!!我天 太近了。。。你是计算机专业的吗?

机械电子,大二,你呢?我的扣扣853425548

阿撩 发表于 2016-12-1 22:06:08

致年轻的我们 发表于 2016-12-1 22:03
机械电子,大二,你呢?我的扣扣853425548

加你了!!!看扣扣!!!

四十二 发表于 2016-12-1 22:25:20

重载大概的定义就是声明相同名字的函数,参数的变量可以不同

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

...

阿撩 发表于 2016-12-1 22:32:52

四十二 发表于 2016-12-1 22:25
重载大概的定义就是声明相同名字的函数,参数的变量可以不同

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

嗯嗯 谢谢! 虽然好像说是C++的内容 我才学C 还不大懂
页: [1]
查看完整版本: 求问解这个题的思路是啥?