两个十六进制转换为十进制并求和,表示已经看了一个小时找不出错在哪了
#include<stdio.h>#include<math.h>
int main()
{
int shu(char a[]);
char a[10],b[10];
int i=0,j=0,sum=0;
gets(a);
gets(b);
sum=shu(a)+shu(b);
printf("%d",sum);
return 0;
}
int shu(char a[])
{
int chang(char a[]);
int i=0,j=0,t,m=0,n=0,sum=0,lon;
lon=chang(a);
while(a[i]!='\0')
{
lon--;
if(a[i]>='a' && a[i]<='f')
{
for(j=0;j<5;j++)
{
if(a[i]=='a'+m)
{
t=10+n;
sum=sum+t*pow(16,lon);
}
m++;
n++;
}
m=0;
n=0;
}
sum=sum+(a[i]-48)*pow(16,lon);
i++;
}
return (sum);
}
int chang(char a[])
{
int i=0,j=0;
while(a[i]!='\0')
{
j++;
i++;
}
return (j);
}