这是一个任意进制转换为十进制的代码,结果总是不正确,都为负数,求大神指点
#include<iostream>
using namespace std;
#include<string.h>
main()
{
char a[50];
int n,j,i,sum=0,t=0,p=1;
int x;
printf("请输入要转换M进制数: ");
scanf("%d",&x);
printf("输入一个进制数x:");
cin.get();
gets(a);
n=strlen(a); //扫描输入进制数的长度
for(i=n-1;i>=0;i--);
{
p=1;
if(a[i]<=57)
t=a[i]-48;
else
t=a[i]-55;
if(i==n-1)
{
p=1;
}
else
{
for(j=0;j<n-i-1;j++)
{
p=p*x;
}
}
sum+=t*p;
}
printf("对应的十进制数:%d ",sum);
return sum;
}
程序至少有一个错
for(i=n-1;i>=0;i--);
后面多分号了
热门标签: