当前位置 :
将十进制正整数用除n取余法转换为n进制数输出.这个哪里错了啊,一运行就程序崩溃#includevoidmain(){inti,j,r,a,n,b[32];charh[33];printf("请输入一个十进制数n");scanf("%d",&a);printf("请输入要将十进制数
5人问答
问题描述:

将十进制正整数用除n取余法转换为n进制数输出.这个哪里错了啊,一运行就程序崩溃

#include

voidmain()

{

inti,j,r,a,n,b[32];

charh[33];

printf("请输入一个十进制数n");

scanf("%d",&a);

printf("请输入要将十进制数转换成n进制数的nn");

scanf("%d",&n);

switch(n)

{

case2:while(a>0)

{r=a%2;

b[i]=r;

a=a/2;

i++;

}

for(j=i;j>=0;j--)printf("%d",b[i]);break;

case8:while(a>0)

{r=a%8;

b[i]=r;

a=a/8;

i++;

}

for(j=i;j>=0;j--)printf("%d",b[i]);break;

case16:while(a>0)

{r=a%16;

if(r=0;j--)printf("%c",h[i]);break;

default:printf("n输入有误n");

}

printf("以上为转换结果n");

}

case2:和case8:可以合并的吧,函数调用不太会,还是崩溃中啊

陈马连回答:
  i是局部变量,程序不会对它初始化,所以你不能假定i初始值为0,应该在程序开头加上i=0语句.
高雪强回答:
  额,改了后,不崩溃了,但是出现乱码了,逻辑有错,求帮助啊
陈马连回答:
  for(j=i;j>=0;j--)printf("%d",b[i]);改为for(j=i-1;j>=0;j--)printf("%d",b[i]);
高雪强回答:
  是i吧,i-1改了以后还是一堆乱七八糟的数字
陈马连回答:
  哦,你printf("%d",b[i]);不对,要改为printf("%d",b[j]);
最新更新
PC端 | 移动端 | mip端
字典翻译(zidianfy.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
电话:  邮箱:
Copyright©2009-2021 字典翻译 zidianfy.com 版权所有 闽ICP备2022014709号-7
lyric 頭條新聞