VC++ 函数高手来哦!

来源:百度知道 编辑:UC知道 时间:2024/05/10 14:34:59
#include <stdio.h>
void a();//10 to 2
void b();//10 to 8
void c();//10 to 16
void main()
{
int n;
do
{
printf("\n0.退出 1.十进制~二进制 2.十进制~八进制 3.十进制~十六进制\n");
printf("请选择功能:");
scanf("%d",&n);

switch(n)
{
case 0:
break;
case 1:a();
break;
case 2:b();
break;
case 3:c();
break;
default:printf("输入有误,请在1-4之间选择\n");
}
}while(1);
}
void a()
{
int num, p[100],i=0,count;
printf("请输入一个十进制数:");
scanf("%d",&num);
for(count=0;;count++)
{
if(num==0)
break;
p[count]=num%2;
num=num/2;
i++;
}
printf("转换为二进制:");
for(count=i-1;count>=0;count--)
printf("%d",p[count]);
printf("\n");
}

void c()
{
int num, p[100],i=0,count,t;
printf("请输入一个十进制数:");
scanf("%d",&num);
for(count=0;;count++) //省略第二个表达式解释见下面
{
if(num==0)
break; //这里的break;语句就起到了上面第二个表达式的作用
p[count]=num%16;
num=num/16;
i++;
}
printf("转换为十六进制:");
for(count=i-1;count>=0;count--) //这里是将数组p中的结果从高位到低位显示出来,来模拟最后生成了不同进制的数字
printf("%d",p[count]);
printf("\n");
}
和你上面的两个函数没有什么区别,这三个函数可以合成一个,那就是下面这样,我加的参数表示用户想最终转换的进制数,假如你想转换成16进制,那参数就是16
void change(int m)
{
int num, p[100],i=0,count,t;
printf("请输入一个十进制数:");
scanf("%d",&num);
for(count=0;;count++)
{
if(num==0)
break;
p[count]=num%m;
num=num/m;
i++;
}
printf("转换为%d进制:",m);
for(count=i-1;count>=0;count--)
printf("%d",p[count]);
printf("\n"