.c 中的一个简单的印刷错误
a simple typographical error in .c
我只是在写一个程序来将十进制数更改为另一个基数(2<=radix<=16)。
在 运行 程序并打印出正确答案后,我遇到了一个错误:"program has stopped working"。你能看看我的代码并找到它悬空的地方吗???!!!我真的很困惑。
这是我的代码:
int decimal, radix, pow = 1, temp;
printf("enter your number and the 2 <= radix <= 16\n");
scanf("%d%d",&decimal, &radix);
temp = decimal;
for(; temp >= radix; temp /= radix)// finding the greatest exponent of radix in decimal
pow *= radix;
while(pow >= 1){
decimal -= temp * pow;
if(temp == 10)
printf("A");
else if(temp == 11)
printf("B");
else if(temp == 12)
printf("C");
else if(temp == 13)
printf("D");
else if(temp == 14)
printf("E");
else if(temp == 15)
printf("F");
else
printf("%d",temp);
pow /= radix;
temp = decimal / pow;
}
puts("");
我认为问题是因为 "temp = decimal / pow" 但我该如何解决?
在 while
循环结束时计算 temp = decimal / pow;
时检查 pow
是否为 0
pow /= radix;
if (pow > 0)
{
temp = decimal / pow;
}
我只是在写一个程序来将十进制数更改为另一个基数(2<=radix<=16)。
在 运行 程序并打印出正确答案后,我遇到了一个错误:"program has stopped working"。你能看看我的代码并找到它悬空的地方吗???!!!我真的很困惑。
这是我的代码:
int decimal, radix, pow = 1, temp;
printf("enter your number and the 2 <= radix <= 16\n");
scanf("%d%d",&decimal, &radix);
temp = decimal;
for(; temp >= radix; temp /= radix)// finding the greatest exponent of radix in decimal
pow *= radix;
while(pow >= 1){
decimal -= temp * pow;
if(temp == 10)
printf("A");
else if(temp == 11)
printf("B");
else if(temp == 12)
printf("C");
else if(temp == 13)
printf("D");
else if(temp == 14)
printf("E");
else if(temp == 15)
printf("F");
else
printf("%d",temp);
pow /= radix;
temp = decimal / pow;
}
puts("");
我认为问题是因为 "temp = decimal / pow" 但我该如何解决?
在 while
循环结束时计算 temp = decimal / pow;
时检查 pow
是否为 0
pow /= radix;
if (pow > 0)
{
temp = decimal / pow;
}