这段代码哪里错了,输出老是错误
求指导
A-F分别对应10-15
#include
#include
int main()
{
int len, n, k = 0, c = 0;
scanf("%d %d", &len, &n);//len为数组长度, n即n进制
getchar();
char a[len];
scanf("%s",a);
for(int i=0;i<=len-1;i++)
{
if (a[i]-'0' >= 65) //将A-F转换为10-15
a[i]=a[i]-55;
}
for (int i = 0; i<=len-1; i++)
{
if (a[i]-'0' >= n)
{
printf("Error"); //判断输入的数组是否合法
return 0;
}
}
for(int i=0;i<=len-1;i++)
{
if (a[i] - '0' < n)
{
k = (a[i] - '0') * pow(n,i );
c = k + c;
}
printf("%d",c);//输出十进制结果
}
return 0;
}
#include<stdio.h>
#include<math.h>
int main()
{
int len, n, k = 0, c = 0;
scanf("%d %d", &len, &n);//len为数组长度, n即n进制
getchar();
char a[len];
scanf("%s",a);
for(int i=0;i<=len-1;i++)
{
if (a[i]-'0' >= 65) //将A-F转换为10-15
a[i]=a[i]-55;
}
for (int i = 0; i<=len-1; i++)
{
if (a[i] - '0' >= n)
{
printf("Error"); //判断输入的数组是否合法
return 0;
}
}
for(int i=0;i<=len-1;i++)
{
if (a[i] - '0' < n)
{
k = (a[i] - '0') * pow(n,len - i - 1);
c = k + c;
}
}
printf("%d",c);//输出十进制结果
return 0;
}