2016-11-11 79 views
0

任何人都可以指出这段代码有什么问题吗?我试图写一个简单的(不使用数组和类似的东西)程序,将基地10号码转换为任何其他基地。我是一个初学者,我刚刚开始编码。我可以看到我没有写任何会反转结果的东西,而且我没有收到编译器的任何输出。它停止工作。c编程语言中的基址转换

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); 
} 
+0

您输入了什么?你作为输出得到了什么?你怎么能改变它不以相反的顺序打印数字?您什么时候计划检查输入是否有效?你什么时候会输出一个换行符或空白来分隔数字? –

+0

嗯,我没有收到任何输出,因为编译器停止工作,是的,我没有写任何会反转结果的东西,这就是我所能做的...... @ Jonathan Leffler –

+0

我输入了'42'和'8 (八进制)到你的程序中,它回答'250',尽管十进制的'42'是八进制的'52'。 –

回答

1

将您的while循环更改为!= 0。要循环,直到您将输入数减少到零。您的代码在第一个数字为0时终止。

+0

下一个挑战将是正确写入转换后的值。所有数字都保留。 –

+0

关于如何反转结果的任何想法? –