对于十六进制字符串转换成十进制的程序我怎么做不对啊
#include<stdio.h>#include<math.h>
int main()
{
long a=0;
int i,n;
char hex[9];
printf("Input hex:");
gets(hex);
for(i=0;hex[i]!='\0';i++)
{
n=i;
}
for(i=0;hex[i]!='\0';i++)
{
a+=hex[i]*pow(16,n-1);
}
printf("%ld\n",a);
return 0;
}
程序能运行 但答案是错误的 为什么呢??