谁能指出这段代码有什么问题?我试图写一个简单的(不使用数组和类似的东西)程序,将转换为任何其他基数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);
}
将while循环更改为a != 0。你想循环,直到你把输入的数字减少到零。当第一个数字为0时,代码终止
转换为十进制:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
main()
{
char input[23];
int sum;
int power;
int base;
int val;
int len;
gets(input);
strupr(input);
scanf("%d",&base);
len=strlen(input);
power=len-1;
for(int x=0;x<len;x++,power--)
{
val=input[x]-48;
if(val>9)
val-=7;
sum+=val*pow(base,power);
}
printf("%d",sum);
}