求十六进制a+b 求不出来结果

img

img

可以帮忙看看哪个地方写错了吗 写了程序可以运行 但是正确结果出不来 结果老是乱码


int main()
{
   int a, b, sum;
   scanf("%X#%X", &a, &b);
   sum = a + b;
   printf("%0X", sum);
   return 0;
}

代码实现如下,望采纳:

#include <stdio.h>

int main()
{
    char a[10], b[10];
    int num1, num2, sum;
    scanf("%s#%s", a, b);
    sscanf(a, "%x", &num1);
    sscanf(b, "%x", &num2);
    sum = num1 + num2;
    printf("%s+%s=%X\n", a, b, sum);
    return 0;
}

代码解释如下:

  • 定义两个字符数组a和b,用于存储输入的两个无前缀十六进制数。
  • 定义三个整型变量num1、num2和sum,用于存储两个输入的无前缀十六进制数的十进制值和它们的和。
  • 使用scanf函数读取输入的两个无前缀十六进制数。
  • 使用sscanf函数将两个无前缀十六进制数转换为十进制数。
  • 计算两个十进制数的和。
  • 使用printf函数按指定格式输出两个无前缀十六进制数和它们的和。