C语言:输入一个整数,进行2、8、10、16进制的转换。转换计算写在函数里。

来源:百度知道 编辑:UC知道 时间:2024/05/30 13:51:20
代码写出来了,但是有问题,请大家帮我看看撒~

#include<stdio.h>
#include<stdlib.h>

double binary(double);//二进制
double octal(double);//八进制
double hex(double);//十六进制

void main()
{
int num,temp;
printf("\n请输一个十进制整数入数:");
scanf("%d",&num);
fflush(stdin);
printf("\n请选择要转换的类型:\n");
printf(" 1、十进制——二进制\n");
printf(" 2、十进制——八进制\n");
printf(" 3、十进制——十六进制\n");
printf(" 4、退出\n\n");
printf(" 请输入你的选择:");
scanf("%d",&temp);

switch(temp)
{
case 1:
binary(num);
break;
case 2:
octal(num);
break;
case 3:
hex(num);
break;
case 4:
exit(0);
default:
printf("\n输入错误,重新选择1-4\n");

}
main();
}

double binary(double i)//二进制

每个函数都有一个问题:参数是i,但是被处理的却是num。
不会报错的,你传过去一个数,然后做一些无关的操作,再把那个数返回,怎么可能有错?
我是说,你要处理的数是i,但是真正处理的是num,而且num也没有赋初值,是默认值。
我没看你的实现方法,但是我想说,就好比现在你让我蒸一锅馒头给你,你给了我面粉,然后我自己做了一锅米饭,再把面粉给你……