输入三个不相等的整数,在屏幕上输出最大值,最小值后,中间值怎么搞?C程序
中间值就是既不是最大值,也不是最小值
给你写了一个(注意,3个整数必须不等,否则中间值输出不了)
#include <stdio.h>
int main() {
int a, b, c;
printf("请输入三个不相等的整数:");
scanf("%d %d %d", &a, &b, &c);
int max = a;
if (b > max) {
max = b;
}
if (c > max) {
max = c;
}
printf("最大值:%d\n", max);
int min = a;
if (b < min) {
min = b;
}
if (c < min) {
min = c;
}
printf("最小值:%d\n", min);
int mid = a;
if ((b > mid && b < max) || (b < mid && b > min)) {
mid = b;
}
if ((c > mid && c < max) || (c < mid && c > min)) {
mid = c;
}
printf("中间值:%d\n", mid);
return 0;
}
参考GPT和自己的思路:可以通过比较这三个数的大小来找出最大值、最小值和中间值。具体步骤如下:
定义三个变量x、y、z,分别用于存储输入的三个整数值。
通过if语句的嵌套结构,比较x、y、z的大小,找出最大值和最小值。
通过else语句,找出中间值。
代码示例:
#include <stdio.h>
int main() {
int x, y, z, max, min, mid;
printf("请输入三个不相等的整数:\n");
scanf("%d %d %d", &x, &y, &z);
// 找最大值
if(x > y) {
if(x > z) {
max = x;
} else {
max = z;
}
} else {
if(y > z) {
max = y;
} else {
max = z;
}
}
printf("最大值为:%d\n", max);
// 找最小值
if(x < y) {
if(x < z) {
min = x;
} else {
min = z;
}
} else {
if(y < z) {
min = y;
} else {
min = z;
}
}
printf("最小值为:%d\n", min);
// 找中间值
if((x > y && x < z) || (x > z && x < y)) {
mid = x;
} else if((y > x && y < z) || (y > z && y < x)) {
mid = y;
} else if((z > x && z < y) || (z > y && z < x)) {
mid = z;
}
printf("中间值为:%d\n", mid);
return 0;
}
#include<iostream>
#include<algorithm>
using namespace std;
int a[3];
int main(){
cin >> a[0] >> a[1] >> a[2];
sort(a,a+3);
cout << "最小值" << a[0] << endl;
cout << "最大值" << a[2] << endl;
cout << "中间值" << a[1] << endl;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: