三个数分别求出最大值,中间值和最小值的c语言代码
时间: 2024-09-21 16:04:04 浏览: 48
c代码-求3个数的中间值
在C语言中,你可以使用数组或者结构体以及标准库函数来计算三个数的最大值、中间值和最小值。这里是一个简单的示例,假设你有三个整数a、b和c:
```c
#include <stdio.h>
#include <limits.h> // 包含整型最大和最小值的定义
// 定义一个结构体来存储数值及其索引
typedef struct {
int value;
int index;
} Value;
int main() {
int a, b, c;
printf("请输入三个数字: ");
scanf("%d %d %d", &a, &b, &c);
// 创建Value结构体变量
Value min = {INT_MAX, 0}, max = {INT_MIN, 0};
Value mid;
// 初始认为第一个数是最小和最大的
if (a < min.value) {
min.value = a;
min.index = 0;
}
if (a > max.value) {
max.value = a;
max.index = 0;
}
if (b < min.value || (b == min.value && b != a)) {
min.value = b;
min.index = 1;
}
if (b > max.value || (b == max.value && b != a)) {
max.value = b;
max.index = 1;
}
// 如果c还没更新,则它是中间值和最小值,如果c比当前最大值还大,则它是新最大值
if (c < min.value || (c == min.value && c != b && c != a)) {
min.value = c;
min.index = 2;
}
if (c > max.value || (c == max.value && c != b && c != a)) {
max.value = c;
max.index = 2;
}
// 中间值:如果不是三个相等的数,则取中间两个较大的;如果是相等的,取任意一个
mid.value = (a + b + c - max.value - min.value) / 2;
mid.index = (min.index + max.index + 1) % 3; // 使用模运算保证index在0~2之间
printf("最大值: %d, 在第%d位置\n", max.value, max.index);
printf("中间值: %d, 在第%d位置\n", mid.value, mid.index);
printf("最小值: %d, 在第%d位置\n", min.value, min.index);
return 0;
}
```
阅读全文