,输入三个短型整数,分别存放到abc中,求这三个数中最大的无符号数和最小的无符号数及其对应的输入值c语言
时间: 2024-10-18 16:20:07 浏览: 26
在 C 语言中,你可以通过比较操作符和循环结构来找到三个给定短型整数中最大和最小的无符号数。假设我们使用 `int` 类型,因为没有专门表示无符号整数的类型,我们会先将它们转换成无符号整数进行比较。以下是一个简单的程序示例:
```c
#include <stdio.h>
// 假设输入的整数范围不会超过 int 的大小
void findMinMax(int a, int b, int c) {
unsigned short max_unsigned = (unsigned short)(a);
unsigned short min_unsigned = max_unsigned; // 初始设定与 a 相同
if (b > max_unsigned) {
max_unsigned = (unsigned short)b;
}
if (c > max_unsigned) {
max_unsigned = (unsigned short)c;
}
if (b < min_unsigned) {
min_unsigned = (unsigned short)b;
}
if (c < min_unsigned) {
min_unsigned = (unsigned short)c;
}
printf("最大无符号数: %hu 对应输入值: %d\n", max_unsigned, c);
printf("最小无符号数: %hu 对应输入值: %d\n", min_unsigned, b); // 由于原始 min_unsigned 已经是最小的,所以取 b
}
int main() {
int input[3];
printf("请输入三个整数: ");
scanf("%d%d%d", &input[0], &input[1], &input[2]);
// 检查输入是否合法,这里仅作简单处理
// 如果需要更严格的边界检查,可以添加额外条件
if (input[0] >= INT_MIN && input[0] <= INT_MAX &&
input[1] >= INT_MIN && input[1] <= INT_MAX &&
input[2] >= INT_MIN && input[2] <= INT_MAX) {
findMinMax(input[0], input[1], input[2]);
} else {
printf("输入无效!\n");
}
return 0;
}
```
阅读全文