从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出,为什么这是错的,谢了

2025-03-13 23:32:16
推荐回答(1个)
回答1:

#include

int main()

{

    char a[9];

int i,pos=0;

long sum=0;

do

{

scanf("%c",&a[pos]);

}while(a[pos++]!='\n');

for(i=0;i

printf("H=");

for(i=0;i

{

if(a[i]>='a'&&a[i]<='f')a[i]-='a'-'A';

if(a[i]>='0'&&a[i]<='9')

sum=sum*16L+(a[i]-'0');

else

sum=sum*16L+(a[i]-'A'+10);

}

printf("%ld\n",sum);

system("pause");

return 0;

}