C语言:输入一个整数,进行2、8、10、16进制的转换。转换计算写在函数里。
代码写出来了,但是有问题,请大家帮我看看撒~#include<stdio.h>#include<stdlib.h>doublebinary(double);//二进制do...
代码写出来了,但是有问题,请大家帮我看看撒~
#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)//二进制
{
int a,num,p[10],arr[10],count=0;
while(num>0)
{
p[count]=num%2;
num=num/2;
count++;
}
printf("\n转化为2进制:");
for(a=count-1;a>=0;a--)
printf("%d ",arr[p[a]]);
printf("\n\n");
return i;
}
double octal(double i)//八进制
{
int a,num,p[100],arr[100],count=0;
while(num>8)
{
p[count]=num%8;
num=num/8;
count++;
}
printf("\n转化为8进制:");
for(a=count-1;a>=0;a--)
printf("%d",arr[p[a]]);
printf("\n\n");
return i;
}
double hex(double i)//十六进制
{
int a,num,p[100],arr[100],count=0;
while(num>16)
{
p[count]=num%16;
num=num/16;
count++;
}
printf("\n转化为16进制:");
for(a=count-1;a>=0;a--)
printf("%d",arr[p[a]]);
printf("\n\n");
return i;
}
谢谢楼下的朋友,已经研究好了,代码改好了,可以运行了。 展开
#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)//二进制
{
int a,num,p[10],arr[10],count=0;
while(num>0)
{
p[count]=num%2;
num=num/2;
count++;
}
printf("\n转化为2进制:");
for(a=count-1;a>=0;a--)
printf("%d ",arr[p[a]]);
printf("\n\n");
return i;
}
double octal(double i)//八进制
{
int a,num,p[100],arr[100],count=0;
while(num>8)
{
p[count]=num%8;
num=num/8;
count++;
}
printf("\n转化为8进制:");
for(a=count-1;a>=0;a--)
printf("%d",arr[p[a]]);
printf("\n\n");
return i;
}
double hex(double i)//十六进制
{
int a,num,p[100],arr[100],count=0;
while(num>16)
{
p[count]=num%16;
num=num/16;
count++;
}
printf("\n转化为16进制:");
for(a=count-1;a>=0;a--)
printf("%d",arr[p[a]]);
printf("\n\n");
return i;
}
谢谢楼下的朋友,已经研究好了,代码改好了,可以运行了。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |