#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int i, sum;
int main()
{
void change(char str[]);
void caculate(char str[]);
char str[50];
gets(str);
change(str);
caculate(str);
system("pause");
return 0;
}
void change(char str[])
{
for (i = 0; str[i] != '\0'; i++)
{
if (str[i] <= 'Z' && str[i] >= 'A')
str[i] = str[i] - 55;
else if (str[i] >= 'a')
str[i] = str[i] - 87;
else
str[i] = str[i] - 48;
}
}
void caculate(char str[])
{
int j = 1;
for (sum = str[0] * pow(16, i - j); j < i; j++);
{
sum = sum + str[j] * pow(16, i - j - 1);
}
printf("%d", sum);
}
你把sum定义在循环里面了