【发布时间】:2017-03-26 02:29:01
【问题描述】:
谁能指出这段代码有什么问题?我正在尝试编写一个简单的(不使用数组和类似的东西)程序,它将基数为 10 的数字转换为任何其他基数。我是初学者,刚开始用 C 编码。
PS:如您所见,我没有编写任何可以反转结果的东西,也没有收到编译器的任何输出。它停止工作。
main()
{
int a,b,c;
printf("Please enter a number in base 10: ");
scanf("%d",&a);
printf("\nPlease enter the base that you want the number to be converted to: ");
scanf("%d",&b);
do
{
c=a%b;
printf("%d",c);
a/=b;
}while(c!=0);
}
【问题讨论】:
-
你输入了什么?你得到了什么输出?你怎么能改变它不以相反的顺序打印数字?您打算什么时候检查输入是否有效?什么时候输出换行符或空格来分隔数字?
-
好吧,我没有收到任何输出,因为编译器停止工作,是的,我还没有写任何会反转结果的东西,这就是我所能做的......@Jonathan Leffler跨度>
-
我在你的程序中输入了
42和8(八进制),它回复250虽然十进制42是八进制52。 -
是的,那是因为我还没有写任何可以逆转结果的东西。我什至没有得到任何结果,我正在使用 Codeblocks 来编译它。
-
由于您只显示结果,因此您无需反转。您必须首先找到新基数中的最高位数字,因为这些数字是您首先打印的数字。然后一直到最低位。