用C编写一个程序从用户输入的四个整数中找出最大和最小值

2025-02-27 09:42:33
推荐回答(5个)
回答1:

还好,只有四个整数,若更多的话那可就麻烦了,这个最好用数组来处理。
楼上的固然正确,不过第八行不要这样子写:max=min=a;最好分开来写成:max=a;min=a; 要养成良好的编程习惯。
对于这个题而言,我会这样写(不用数组):

#include
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 printf("max=%d\nmin=%d",max,min);
}

楼主理解一下看看,其实max、min两句都是三目运算的条件表达式嵌套使用,相当于if语句,呵呵!

回答2:

#include

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

max1=max2;

if(min1>min2)

min1=min2;

printf("最大值是%d\n",max1);

printf("最小值是%d\n",min1);

return 0;

}


回答3:

楼上的计算量都比较大吧。
我个人觉的a b c d 四个数

先 a 与 b 比较 得到 把其较小值 与 其 较大值存于变量中(min1 max1)
再 c 与 d 比较 得到 把其较小值 与 其 较大值存于变量中(min2 max2)
再 min1 与 min2 比较得到最小值
再 max1 与 max2 比较得到最大值

只要比较四次就可得到结果。
(以最坏运算次数比较)
如有不当,望能指出。谢谢

回答4:

#include
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 if(c if(d
printf("4个数中最大值为:%d 最小值为%d\n",max,min);
}

运行结果:
输入4个整数:34 2 32 1
4个数中最大值为:34 最小值为1
Press any key to continue

回答5:

还好,只有四个整数,若更多的话那可就麻烦了,这个最好用数组来处理。
楼上的固然正确,不过第八行不要这样子写:max=min=a;最好分开来写成:max=a;min=a;
要养成良好的编程习惯。
对于这个题而言,我会这样写(不用数组):
#include
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<(cprintf("max=%d\nmin=%d",max,min);
}
楼主理解一下看看,其实max、min两句都是三目运算的条件表达式嵌套使用,相当于if语句,呵呵!