输入测试次数T,每组测试数据一行,为16进制数。输出对每组测试数据,输出转化后的十进制数字。C语言
时间: 2024-11-22 16:42:29 浏览: 47
在C语言中,你可以使用`scanf`函数读取十六进制输入,然后通过`strtol`或`strtoul`函数将其转换成整数(十进制)。下面是一个简单的程序示例,它会接收用户输入的十六进制数并打印出其对应的十进制值:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int T; // 测试次数
scanf("%d", &T); // 读取测试次数
for (int i = 0; i < T; i++) {
char hex_input[32]; // 存储十六进制数
printf("请输入第 %d 组十六进制数: ", i + 1);
scanf("%s", hex_input); // 读取十六进制字符串
long decimal_value = strtol(hex_input, NULL, 16); // 转换为十进制
if (decimal_value == LONG_MIN || decimal_value == LONG_MAX) { // 检查是否溢出
printf("十六进制数转换错误!\n");
} else {
printf("第%d组的十进制值为:%ld\n", i + 1, decimal_value);
}
}
return 0;
}
```
在这个程序里,`strtol`函数接受三个参数:待转换的字符串、指向存储转换结果的地方的指针(这里我们忽略)以及基数(这里是16表示十六进制),返回的是十进制数值。
阅读全文
相关推荐

















