十六进制转十进制,代码纠错

十六进制转十进制数,代码如下

#include
#include
int main()
{
int i=0,j,a[100],n=0;
char x;
scanf("%c",&x);
for(i=0;x!=0;i++)
{
a[i]=x%10;
x=x-a[i];
x=x/10;
}
for(j=0;j<=i;j++)
{
n=n+a[j]*pow(16,j);
}
printf("输入的数转为10进制是%d\n",&n);
}

不管输入的数字是多少都输出6487132

我感觉思路没问题啊!求纠错

你x变量是字符类型每次只会读取你输入的第一个字符

用整形接受呀