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 11:44:21 浏览: 100
以下是C语言的程序实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef union {
char strcj[4];
int intcj;
} List[10];
int main() {
int n;
List list;
int sum = 0;
printf("请输入n的值(n<=10):");
scanf("%d", &n);
printf("请输入%d个1~3位十六进制数:", n);
for (int i = 0; i < n; i++) {
scanf("%s", list[i].strcj);
list[i].intcj = strtol(list[i].strcj, NULL, 16);
sum += list[i].intcj;
}
printf("%d", sum);
return 0;
}
```
程序的思路如下:
1. 定义了一个 List 类型的变量,用于保存输入的十六进制数和转换后的十进制数;
2. 用户从键盘输入 n 的值;
3. 用户从键盘输入 n 个十六进制数,并将其保存到 List 变量中;
4. 对于每个输入的十六进制数,都将其转换为十进制数,并累加到 sum 中;
5. 最后输出 sum 的值。
需要注意的是,程序中使用了 strtol 函数将十六进制数转换为十进制数,需要包含 stdlib.h 头文件。
阅读全文