电脑c语言结果进制不对怎们办,c语言进制转换问题,感觉没啥问题为什么结果不对啊!...

已结贴√

问题点数:20 回复次数:3

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

c语言进制转换问题,感觉没啥问题为什么结果不对啊!

#include                                        //头文件

void TtoT(char num1);                                    //10 to 2 函数声明

void TtoE(char num2);                                    //10 to 8 函数声明

void TtoS(char num3);                                    //10 to 16 函数声明

void main()                                                //主函数

{

char cs,num;                                    //定义变量cs num

while(1)                                            //死循环

{

printf("10 TO 2     请按1\n");                    //输出10 TO 2  请按1

printf("10 TO 8     请按2\n");                    //输出10 TO 8  请按2

printf("10 TO 16    请按3\n");                    //输出10 TO 16  请按3

scanf("%d",&cs);                                //输入cs的值

switch(cs)                                        //switch语句

{

case 1:

printf("请输入要转换的十进制数:");        //输出请输入要转换的十进制数:

scanf("%d",&num);                        //输入数字

TtoT(num);                                //调用函数TtoT

break;                                    //跳出switch语句

case 2:

printf("请输入要转换的十进制数:");     //输出请输入要转换的十进制数:

scanf("%d",&num);                        //输入数字

TtoE(num);                                //调用函数TtoE

break;                                    //跳出switch语句

case 3:

printf("请输入要转换的十进制数:");     //输出请输入要转换的十进制数:

scanf("%d",&num);                        //输入数字

TtoS(num);                                //调用函数TtoS

break;                                    //跳出switch语句

}

printf("\n");

printf("\n");                                    //换行   目的是第二次进入switch之前换行避免与上一次重行

}

}

void TtoT(char num1)                                        //函数TtoT

{

int    n;

char a;                                            //定义变量

char b[100];                                            //定义数组

for(n=0;num1!=0;n++)                                //for循环

{

a = num1/2;                                        //取商

b[n] = num1%2;                                    //取余

num1 = a;                                        //将a的值给num1

}

printf("10 TO 2 值:");                                //输出10 TO 2 值:

for(;n+1>0;n--)                                        //for循环

{

printf("%d",b[n]);                              //输出结果

}

}

void TtoE(char num2)                                    //函数TtoE

{

int  n;                                            //定义变量

char a,b[100];                                        //定义数组

for(n=0;num2!=0;n++)                                //for循环

{

a = num2/8;                                        //取商

b[n] = num2%8;                                    //取余

num2 = a;                                        //将a的值给num2

}

printf("10 TO 8 值:");                                //输出10 TO 8 值:

for(;n+1>0;n--)                                        //for循环

{

printf("%d",b[n]);                                //输出结果

}

}

void TtoS(char num3)                                    //函数TtoS

{

int    n,d;                                            //定义变量

char a,b[100],c[]={'A','B','C','D','E','F'};        //定义数组

for(n=0;num3!=0;n++)                                //for循环

{

a = num3/16;                                    //取商

b[n] = num3%16;                                    //取余

if(b[n]>9)                                        //判断b[n]是否大于9

{

d=b[n]-10;                                    //取差值

b[n]=c[d];                                    //将c对应的值给b

}

num3 = a;                                        //将a的值给num3

}

printf("10 TO 16 值:0x");                            //输出10 TO 16 值:0x

for(;n+1>0;n--)                                        //for循环

{

if(b[n]>9)                                        //判断b[n]是否大于9

{

printf("%c",b[n]);                            //输出结果

}

else

{

printf("%d",b[n]);                            //输出结果

}

}

}

搜索更多相关主题的帖子:

include c语言

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值