十六进制数转十进制数,n表示输入n个十六进制数依次进行转换,为什么转换出来的都是错的?到底哪里有问题啊啊?
#include<stdio.h>
#include<string.h>
#include<math.h>
void verse(char str[])
{
int n=strlen(str),i,k=0;
long long demp=0;
for(i=0;i<n;i++)
{
if(str[i]>='0'&&str[i]<='9')
demp+=(str[i]-'0')*pow(16,n-i-1);
else
demp+=(str[i]-'A'+10)*pow(16,n-i-1);
}
printf("%lld",demp);
}
int main()
{
int n,i;
char str[10][20];
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
fgets(str[i],sizeof(str[i]),stdin);
for(i=0;i<n;i++)
verse(str[i]);
return 0;
}