C/C++编程题

编写一个将x进制正整数n化为10进制数并输出结果的函数,具有如下原型:
void ChgTo10(char a[],int x);
参数a中放的是x进制正整数的各位数字字符,试将其化为10进制整数并输出,编写主函数对其进行调用以验证其正确性。
#include <iostream>
#include <cmath>
using namespace std;

void ChgTo10(char a[], int x);
int main()
{
int x;
cout << "请输入要转换的进制x(x可以是16和10以下的数字:" << endl;
cin >> x;
char num[20];
cout << "请输入一个孙首" << x << "进制的数字:" << endl;
cin >> num;
ChgTo10(num, x);
return 0;
}

void ChgTo10(char a[], int x)
{
int len = strlen(a);
int sum = 0;
for (int i = 0; i < len; i++)
{
if(a[i] > '9'咐凯拆) // a[i]不是数字
{
if(a[i] > 'Z') // a[i]是小写字母
{
sum += (a[i] - 'a' + 10) * pow(x, len - 1 - i);
}
else // a[i]是大写字母
{
sum += (a[i] - 'A' + 10) * pow(x, len - 1 - i);
}
}
else
{
sum += (a[i] - '0'衡枣) * pow(x, len - 1 - i);
}
}
cout << x << "进制的" << a << "对应的10进制数是:" << sum << endl;
}