c语言编程请编写程序输入n个1~3位十六进制数(n由键盘输入,n<=10),保存到List类型的变量中(List类型定义下面已提供),然后将这些十六进制数转换为十进制数仍然保存到该变量中,求这些数的和并显示结果。 typedef union { char strcj[4]; int intcj; } List[10]; 例如:输入4 a b c d 显示结果 10+11+12+13=46
时间: 2024-03-14 14:44:37 浏览: 46
编写程序,以字符形式输入一个十六进制数,将其变换为一个十进制整数后输出。(要求:十六进制允许的字符是从0~9和a~f或A~F)
5星 · 资源好评率100%
以下是实现该功能的 C 语言代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef union {
char strcj[4];
int intcj;
} List[10];
int main() {
int n, i, sum = 0;
List list;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%s", &(list[i].strcj));
list[i].intcj = strtol(list[i].strcj, NULL, 16);
sum += list[i].intcj;
}
for (i = 0; i < n - 1; i++) {
printf("%d+", list[i].intcj);
}
printf("%d=%d", list[n - 1].intcj, sum);
return 0;
}
```
程序首先定义了一个 List 类型的变量 list,用于保存输入的十六进制数。然后通过 scanf 函数输入 n 的值和 n 个十六进制数(每个数最多有 3 位),并将它们存储到 list 变量中。
接着,程序遍历 list 变量,使用 strtol 函数将每个十六进制数转换成对应的十进制数,并将转换后的结果存储回 list 变量中。同时,程序还累加了所有十进制数的和。
最后,程序遍历 list 变量,输出每个十进制数,并在最后输出它们的和。
例如,当输入 4 a b c d 时,程序会输出 10+11+12+13=46。
阅读全文