C语言中,怎么比较三个数的大小??
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中,怎么比较三个数的大小??相关的知识,希望对你有一定的参考价值。
请给我详细讲解一下
比较方法:1、比较从第一个数开始,先比较第一个数和第二个数的大小,如果第一个数大于第二个数,则将第一个数和第二个数互换;不大于(即等于或小于)则不作处理。
2、然后,再将第二个数和第三个数比较,同样,若大于则将它们互换。
以1
2
3为例
先考虑我们所有的可能输入类型(这里不一一列举):1
2
3;3
2
1
;2
1
3;1
1
1;1
2
2;1
2
1;整体的思路为输入三个数后,我们从中取两个数,在这两个数中选出最大的后将最大的数与第三个数做差比较这里请参考代码理解;
代码:
#include<stdio.h>
int
comp(int
x,int
y)
return
x>y?x:y;
int
main()
int
i,j,k;
int
a,b,c;
scanf("%d
%d
%d",&a,&b,&c);
j=comp(a,b);//j为两个数里最大的值
k=c;//a+b-j求的是a,b里比较小的那个数;
if(j-k<0)printf("%d
%d
%d",k,j,a+b-j);return
0;
//说明K最大按顺序输出就可以了1
2
3;2
2
3
if(j-k>=a+b-j)printf("%d
%d
%d",j,a+b-j,k);return
0;//3
2
1
if(j-k<a+b-j)printf("%d
%d
%d",j,k,a+b-j);return
0;//
3
2
3
总结:
其实这个代码本质也和用if语句比较大小排序差不多,只不过这里不需要每次都调用三个if语句,直接一条if语句便可输出答案效率更高一点。 参考技术A 输入三个整数x,y,z,请把这三个数由小到大输出。
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,
然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
2.程序源代码:
main()
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
t=x;x=y;y=t; /*交换x,y的值*/
if(x>z)
t=z;z=x;x=t;/*交换x,z的值*/
if(y>z)
t=y;y=z;z=t;/*交换z,y的值*/
printf("small to big: %d %d %dn",x,y,z);
本回答被提问者采纳 参考技术B #include<stdio.h>
/*
这才是三个数的比较*/
int
main()
float
a,
b,
c;
float
d=0;
float
e=0;
float
max=0;
printf("输入三个数字\n");
scanf_s("%f\n%f\n%f",&a,&b,&c);
if(d=a>b?a:b)
if(e=b>c?b:c)
if(max=d>e?d:e)
printf("三个数的最大值是:%f\n",max);
//三个数的最大值是MAX
希望给我一个赞~!~!这个比较严谨
system("pause");
return
0;
参考技术C #
include<stdio.h>
int
main()
int
max(int
x
,int
y
,int
z);
int
a,
b,
c,
e
;
scanf("%d
,
%d,
%d",&a,&b,&c);
e
=
max
(a,
b
,
c);
printf("max=%d\n",e);
return
0
;
int
max(int
x
,int
y
,int
z)
int
f,m
;
if(x>y)
f=x;
//如果x大于y,把X的值赋给f
else
f
=
y;
//否则,把Y的值给f
if(f>z)
m=f;
//再把f的值与z比较,如果大于z,把f的值赋给m,并返回m
else
m
=
z;
//否则,f比z小,把z值赋给m
return(m);
//整体思路就是先对2个数比较大小,再和第3个数比较
参考技术D /*
//三个数比较大小
int
x,y,z,q,w;
printf("请输入三个要比较的整数:");
scanf("%d
%d
%d",&x,&y,&z);
if
(x>y)
q=x;
else
q=y;
if
(q>z)
w=q;
else
w=z;
printf("三数中最大的为:%d",w);*/
c语言实践 给三个数输出最大的那个数
我是怎么想的,我前面学过两个数比大小,比如有三个数,a b c,先比较a和b的大小,然后用那个较大的和c比较就得出最大的那个了。这个求三个数比大小的问题最后变化成 了两个数比大小了。
int main() { int a = 0; int b = 0; int c = 0; int max2 = 0;//保存两个数中较大的那一个 int max3 = 0;//保存三个数中最大的那一个 scanf_s("%d %d %d",&a,&b,&c); //先找出a b中较大的那一个 if (a > b) { max2 = a; if (max2 > c) { printf("%d is the greatest",max2); } else { printf("%d is the greatest",c); } } else { max2 = b; if (max2 > c) { printf("%d is the greatest",max2); } else { printf("%d is the greatest",c); } } }
以上是关于C语言中,怎么比较三个数的大小??的主要内容,如果未能解决你的问题,请参考以下文章