c语言中的基数转换

base conversion in c programming language

有人能指出这段代码有什么问题吗?我正在尝试编写一个简单的(不使用数组和类似的东西)程序,将以 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 循环更改为 != 0。您想循环直到将输入数字减少为零。当第一个数字为 0 时,您的代码将终止。

将任何底数转换为底数 10:

#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);
}