C语言十六进制转十进制
希望大家能帮忙看看哪里出问题了
#include<stdio.h>
#include<math.h>
#include<string.h>
void main()
{
char a[8];
int i,j=0,k;
int n,m;
gets(a);
n=strlen(a);
for(i=0;i<n-1;i++)
{
switch(a[i])
{
case 'A':k+=10*pow(16,i);break;
case 'B':k+=11*pow(16,i);break;
case 'C':k+=12*pow(16,i);break;
case 'D':k+=13*pow(16,i);break;
case 'E':k+=14*pow(16,i);break;
case 'F':k+=15*pow(16,i);break;
case '0':k+=0*pow(16,i);break;
case '1':k+=1*pow(16,i);break;
case '2':k+=2*pow(16,i);break;
case '3':k+=3*pow(16,i);break;
case '4':k+=4*pow(16,i);break;
case '5':k+=5*pow(16,i);break;
case '6':k+=6*pow(16,i);break;
case '7':k+=7*pow(16,i);break;
case '8':k+=8*pow(16,i);break;
case '9':k+=9*pow(16,i);break;
}
}
printf("%d",k);
}