编写一个十六进制转十进制的程序:
#include<stdio.h>
#include<math.h>
#define a 10
#define b 11
#define c 12
#define d 13
#define e 14
#define f 15
int main()
{
int h[100],y=0,z,k,i,j;
printf("请输入数字的位数\n");
scanf("%d",&k);
printf("请从低位到高位输入数字:\n") ;
for(i=0;i<=k-1;i++)
{
scanf("%d",&z);
h[i]=z;
}
for(i=0;i<=k-1;i++)
{
h[i]=h[i]*pow(16,i);
}
for(i=0;i<=k-1;i++)
y+=h[i];
printf("十进制数为%d",y);
return 0;
}
对于1-9的数结果十正常的,但是一输入a-f中的一个就会自动跳出循环并计算.例如输入25a4
本人初入c可能对某些特点不太了解
希望有高人指点.