蓝桥杯十六进制转化为十进制,想问问哪有问题
#include<stdio.h>
#include<string.h>
#include <math.h>
int main (void)
{
int j,len,temp;
char a[8];
temp=0;
scanf("%s",&a);
len=strlen(a);
for(j=0;j<len;j++)
{
switch(a[j])
{
case '1':temp+=1*pow(16,len-j-1);break;
case '2':temp+=2*pow(16,len-j-1);break;
case '3':temp+=3*pow(16,len-j-1);break;
case '4':temp+=4*pow(16,len-j-1);break;
case '5':temp+=5*pow(16,len-j-1);break;
case '6':temp+=6*pow(16,len-j-1);break;
case '7':temp+=7*pow(16,len-j-1);break;
case '8':temp+=8*pow(16,len-j-1);break;
case '9':temp+=9*pow(16,len-j-1);break;
case 'A':temp+=10*pow(16,len-j-1);break;
case 'B':temp+=11*pow(16,len-j-1);break;
case 'C':temp+=12*pow(16,len-j-1);break;
case 'D':temp+=13*pow(16,len-j-1);break;
case 'E':temp+=14*pow(16,len-j-1);break;
case 'F':temp+=15*pow(16,len-j-1);break;
default:temp+=0;
}
}
printf("%d",temp);
return 0;
}