用C编写一个程序从用户输入的四个整数中找出最大和最小值
发布网友
发布时间:2022-05-03 09:44
我来回答
共5个回答
热心网友
时间:2023-10-19 17:18
还好,只有四个整数,若更多的话那可就麻烦了,这个最好用数组来处理。
楼上的固然正确,不过第八行不要这样子写:max=min=a;最好分开来写成:max=a;min=a; 要养成良好的编程习惯。
对于这个题而言,我会这样写(不用数组):
#include<stdio.h>
main()
{
int a,b,c,d,max,min;
printf("input 4 numbers:");
scanf("%d%d%d%d",&a,&b,&c,&d);
max=a>(b>(c>d?c:d)?b:(c>d?c:d))?a:(b>(c>d?c:d)?b:(c>d?c:d));
min=a<(b<(c<d?c:d)?b:(c<d?c:d))?a:(b<(c<d?c:d)?b:(c<d?c:d));
printf("max=%d\nmin=%d",max,min);
}
楼主理解一下看看,其实max、min两句都是三目运算的条件表达式嵌套使用,相当于if语句,呵呵!
热心网友
时间:2023-10-19 17:18
还好,只有四个整数,若更多的话那可就麻烦了,这个最好用数组来处理。
楼上的固然正确,不过第八行不要这样子写:max=min=a;最好分开来写成:max=a;min=a; 要养成良好的编程习惯。
对于这个题而言,我会这样写(不用数组):
#include<stdio.h>
main()
{
int a,b,c,d,max,min;
printf("input 4 numbers:");
scanf("%d%d%d%d",&a,&b,&c,&d);
max=a>(b>(c>d?c:d)?b:(c>d?c:d))?a:(b>(c>d?c:d)?b:(c>d?c:d));
min=a<(b<(c<d?c:d)?b:(c<d?c:d))?a:(b<(c<d?c:d)?b:(c<d?c:d));
printf("max=%d\nmin=%d",max,min);
}
楼主理解一下看看,其实max、min两句都是三目运算的条件表达式嵌套使用,相当于if语句,呵呵!
热心网友
时间:2023-10-19 17:19
#include<stdio.h>
int main(void)
{int a,b,c,d,max1,min1,max2,min2;
printf("请输入四位整数:");
scanf("%d %d %d %d",&a,&b,&c,&d);
if(a>b)
{max1=a;min1=b;}
else
{max1=b;min1=a;}
if(c>d)
{max2=c;min2=d;}
else
{max2=d;min2=c;}
if(max1<max2)
max1=max2;
if(min1>min2)
min1=min2;
printf("最大值是%d\n",max1);
printf("最小值是%d\n",min1);
return 0;
}
热心网友
时间:2023-10-19 17:19
#include<stdio.h>
int main(void)
{int a,b,c,d,max1,min1,max2,min2;
printf("请输入四位整数:");
scanf("%d %d %d %d",&a,&b,&c,&d);
if(a>b)
{max1=a;min1=b;}
else
{max1=b;min1=a;}
if(c>d)
{max2=c;min2=d;}
else
{max2=d;min2=c;}
if(max1<max2)
max1=max2;
if(min1>min2)
min1=min2;
printf("最大值是%d\n",max1);
printf("最小值是%d\n",min1);
return 0;
}
热心网友
时间:2023-10-19 17:19
楼上的计算量都比较大吧。
我个人觉的a b c d 四个数
先 a 与 b 比较 得到 把其较小值 与 其 较大值存于变量中(min1 max1)
再 c 与 d 比较 得到 把其较小值 与 其 较大值存于变量中(min2 max2)
再 min1 与 min2 比较得到最小值
再 max1 与 max2 比较得到最大值
只要比较四次就可得到结果。
(以最坏运算次数比较)
如有不当,望能指出。谢谢
热心网友
时间:2023-10-19 17:20
#include<stdio.h>
void main()
{
int a,b,c,d;
int max,min;
printf("输入4个整数:");
scanf("%d%d%d%d",&a,&b,&c,&d);
max=min=a;
if(b>max)max=b;
if(c>max)max=c;
if(d>max)max=d;
if(b<min)min=b;
if(c<min)min=c;
if(d<min)min=d;
printf("4个数中最大值为:%d 最小值为%d\n",max,min);
}
运行结果:
输入4个整数:34 2 32 1
4个数中最大值为:34 最小值为1
Press any key to continue
热心网友
时间:2023-10-19 17:20
还好,只有四个整数,若更多的话那可就麻烦了,这个最好用数组来处理。
楼上的固然正确,不过第八行不要这样子写:max=min=a;最好分开来写成:max=a;min=a;
要养成良好的编程习惯。
对于这个题而言,我会这样写(不用数组):
#include<stdio.h>
main()
{
int
a,b,c,d,max,min;
printf("input
4
numbers:");
scanf("%d%d%d%d",&a,&b,&c,&d);
max=a>(b>(c>d?c:d)?b:(c>d?c:d))?a:(b>(c>d?c:d)?b:(c>d?c:d));
min=a<(b<(c<d?c:d)?b:(c<d?c:d))?a:(b<(c<d?c:d)?b:(c<d?c:d));
printf("max=%d\nmin=%d",max,min);
}
楼主理解一下看看,其实max、min两句都是三目运算的条件表达式嵌套使用,相当于if语句,呵呵!
热心网友
时间:2023-10-19 17:19
楼上的计算量都比较大吧。
我个人觉的a b c d 四个数
先 a 与 b 比较 得到 把其较小值 与 其 较大值存于变量中(min1 max1)
再 c 与 d 比较 得到 把其较小值 与 其 较大值存于变量中(min2 max2)
再 min1 与 min2 比较得到最小值
再 max1 与 max2 比较得到最大值
只要比较四次就可得到结果。
(以最坏运算次数比较)
如有不当,望能指出。谢谢
热心网友
时间:2023-10-19 17:20
#include<stdio.h>
void main()
{
int a,b,c,d;
int max,min;
printf("输入4个整数:");
scanf("%d%d%d%d",&a,&b,&c,&d);
max=min=a;
if(b>max)max=b;
if(c>max)max=c;
if(d>max)max=d;
if(b<min)min=b;
if(c<min)min=c;
if(d<min)min=d;
printf("4个数中最大值为:%d 最小值为%d\n",max,min);
}
运行结果:
输入4个整数:34 2 32 1
4个数中最大值为:34 最小值为1
Press any key to continue
热心网友
时间:2023-10-19 17:20
还好,只有四个整数,若更多的话那可就麻烦了,这个最好用数组来处理。
楼上的固然正确,不过第八行不要这样子写:max=min=a;最好分开来写成:max=a;min=a;
要养成良好的编程习惯。
对于这个题而言,我会这样写(不用数组):
#include<stdio.h>
main()
{
int
a,b,c,d,max,min;
printf("input
4
numbers:");
scanf("%d%d%d%d",&a,&b,&c,&d);
max=a>(b>(c>d?c:d)?b:(c>d?c:d))?a:(b>(c>d?c:d)?b:(c>d?c:d));
min=a<(b<(c<d?c:d)?b:(c<d?c:d))?a:(b<(c<d?c:d)?b:(c<d?c:d));
printf("max=%d\nmin=%d",max,min);
}
楼主理解一下看看,其实max、min两句都是三目运算的条件表达式嵌套使用,相当于if语句,呵呵!
热心网友
时间:2023-10-19 17:18
还好,只有四个整数,若更多的话那可就麻烦了,这个最好用数组来处理。
楼上的固然正确,不过第八行不要这样子写:max=min=a;最好分开来写成:max=a;min=a; 要养成良好的编程习惯。
对于这个题而言,我会这样写(不用数组):
#include<stdio.h>
main()
{
int a,b,c,d,max,min;
printf("input 4 numbers:");
scanf("%d%d%d%d",&a,&b,&c,&d);
max=a>(b>(c>d?c:d)?b:(c>d?c:d))?a:(b>(c>d?c:d)?b:(c>d?c:d));
min=a<(b<(c<d?c:d)?b:(c<d?c:d))?a:(b<(c<d?c:d)?b:(c<d?c:d));
printf("max=%d\nmin=%d",max,min);
}
楼主理解一下看看,其实max、min两句都是三目运算的条件表达式嵌套使用,相当于if语句,呵呵!
热心网友
时间:2023-10-19 17:19
#include<stdio.h>
int main(void)
{int a,b,c,d,max1,min1,max2,min2;
printf("请输入四位整数:");
scanf("%d %d %d %d",&a,&b,&c,&d);
if(a>b)
{max1=a;min1=b;}
else
{max1=b;min1=a;}
if(c>d)
{max2=c;min2=d;}
else
{max2=d;min2=c;}
if(max1<max2)
max1=max2;
if(min1>min2)
min1=min2;
printf("最大值是%d\n",max1);
printf("最小值是%d\n",min1);
return 0;
}
热心网友
时间:2023-10-19 17:19
楼上的计算量都比较大吧。
我个人觉的a b c d 四个数
先 a 与 b 比较 得到 把其较小值 与 其 较大值存于变量中(min1 max1)
再 c 与 d 比较 得到 把其较小值 与 其 较大值存于变量中(min2 max2)
再 min1 与 min2 比较得到最小值
再 max1 与 max2 比较得到最大值
只要比较四次就可得到结果。
(以最坏运算次数比较)
如有不当,望能指出。谢谢
热心网友
时间:2023-10-19 17:20
#include<stdio.h>
void main()
{
int a,b,c,d;
int max,min;
printf("输入4个整数:");
scanf("%d%d%d%d",&a,&b,&c,&d);
max=min=a;
if(b>max)max=b;
if(c>max)max=c;
if(d>max)max=d;
if(b<min)min=b;
if(c<min)min=c;
if(d<min)min=d;
printf("4个数中最大值为:%d 最小值为%d\n",max,min);
}
运行结果:
输入4个整数:34 2 32 1
4个数中最大值为:34 最小值为1
Press any key to continue
热心网友
时间:2023-10-19 17:21
还好,只有四个整数,若更多的话那可就麻烦了,这个最好用数组来处理。
楼上的固然正确,不过第八行不要这样子写:max=min=a;最好分开来写成:max=a;min=a;
要养成良好的编程习惯。
对于这个题而言,我会这样写(不用数组):
#include<stdio.h>
main()
{
int
a,b,c,d,max,min;
printf("input
4
numbers:");
scanf("%d%d%d%d",&a,&b,&c,&d);
max=a>(b>(c>d?c:d)?b:(c>d?c:d))?a:(b>(c>d?c:d)?b:(c>d?c:d));
min=a<(b<(c<d?c:d)?b:(c<d?c:d))?a:(b<(c<d?c:d)?b:(c<d?c:d));
printf("max=%d\nmin=%d",max,min);
}
楼主理解一下看看,其实max、min两句都是三目运算的条件表达式嵌套使用,相当于if语句,呵呵!