谁会用#include stdio.h或math.h编译这道题?

来源:百度知道 编辑:UC知道 时间:2024/06/19 01:36:43
对输入的两十六进制数(两个字符串),将其转换成十进制后再求和。要求十六进制到十进制的转换功能由函数完成。例如:输入3a1 80,由于3a1转换为十进制后为929,80转换为十进制后为128,所以和为1057。

用 scanf("%x %x",&a,&b); 读入16进制数,自动转换.

int a,b,c;
printf("Please Enter 2 hex data:\n");
scanf("%x %x",&a,&b);
c = a + b;
printf("%d + %d = %d\n",a,b,c); // 输出十进制

/*
字母大写小写都支持
*/
#include<stdio.h>

int f(char a[]) /* 转化成10进制*/
{
int i, s=0;
for(i=0;a[i];i++)
{
if(a[i]>='0'&&a[i]<='9') s=s*16+a[i]-'0';
else if(a[i]>='a'&&a[i]<='f') s=s*16+a[i]-'a'+10;
else s=s*16-'A'+10;
}
return s;
}
int main()
{
char s1[10], s2[10];
int a, b;
scanf("%s%s",s1, s2); /*字符串读入*/
a=f(s1);
b=f(s2);
printf("%s(16)=%d(10)\n",s1, a);
printf("%s(16)=%d(10)\n",s2, b);
printf("%s + %s= %d\n", s1,s2,a+b);
}