#include <stdio.h>
#include <string.h>
#include <math.h>
void f(char a[])
{
int i, j = 0, k = 0, sum = 0, n = strlen(a);
int num[100];
for (i = 0; i < n; i++)
{
switch (a[i])
{
case 'A':num[j++] = 10; break;
case 'B':num[j++] = 11;break;
case 'C':num[j++] = 12;break;
case 'D':num[j++] = 13;break;
case 'E':num[j++] = 14;break;
case 'F':num[j++] = 15; break;
default:num[j++] = (int)(a[i] - '0');break;
}
}
for (i = n - 1; i >= 0; i--)
sum += num[i] * pow(16, n - 1 - i);
printf("转换结果:\n%d", sum);
}
int main()
{
char a[10];
gets_s(a);
f(a);
return 0;
}
*解题思路:声明字符串数组arr储存输入的十六进制数并将其作为子函数实参,在子函数中使用循环将
arr各位转换为对应的十进制数并使用一个整型数组存储,然后各位求乘积再求和得出结果。 */