比较3个数的大小编程c语言(三个数比较大小 c语言流程图)
C语言编写3个数比较大小
代码没有问题,
不过你的输入没按照你自己scanf所设定的格式来
scanf("%d,%d,%d",a,b,c);
这么写的话,你应该这么输入:
1,7,8(回车)
或者
2,5,3(回车)
别忘了逗号,也别忘了将3个数都输完再回车
如果这么写,
scanf("%d%d%d",a,b,c);
就可以这么输入:
2(回车)
3(回车)
1(回车)
扩展资料
C语言编写3个数比较大小其他代码样例:
# include stdio.h //头文件
int max(int x,int y,int z); //声明子函数
void main()//主函数
{
int a,b,c,d;//定义变量名
printf("shuru a,b,c"); //打印出shuru a,b,c
scanf("%d,%d,%d",a,b,c); //录入数据
d=max(a,b,c);//调用子函数
printf("max = %d\n",d);
}
int max(int x,int y,int z)//子函数体,比较大小返回最大值
{
int m,int n;
if(xy) m = x;
else m = y;
if(mz) n = m;
else n = z;
return(n);
}
c语言如何编程比较三个数大小?
比较方法:
1、比较从第一个数开始,先比较第一个数和第二个数的大小,如果第一个数大于第二个数,则将第一个数和第二个数互换;不大于(即等于或小于)则不作处理。
2、然后,再将第二个数和第三个数比较,同样,若大于则将它们互换。
以1 2 3为例 先考虑我们所有的可能输入类型(这里不一一列举):1 2 3;3 2 1 ;2 1 3;1 1 1;1 2 2;1 2 1;整体的思路为输入三个数后,我们从中取两个数,在这两个数中选出最大的后将最大的数与第三个数做差比较这里请参考代码理解;
代码:
#includestdio.h
int comp(int x,int y)
{
return xy?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-k0){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-ka+b-j){printf("%d %d %d",j,k,a+b-j);return 0;}// 3 2 3
}
总结:
其实这个代码本质也和用if语句比较大小排序差不多,只不过这里不需要每次都调用三个if语句,直接一条if语句便可输出答案效率更高一点。
C语言3个数比较大小!
输出最大值:
#include stdio.h
void main()
{
int a,b,c,Max;
scanf("%d %d %d",a,b,c);
if (a = b)
Max = b;
else
Max = a;
if (Max = c)
printf("%d",c);
else
printf("%d",Max);
}
输入三个数(空格隔开),先比较前两个数大小,将较大的数赋值给Max,再比较Max与第三个数大小,输出较大的数
按降序输出:
#include stdio.h
void main()
{
int a,b,c,max_ab,min_ab;
scanf("%d %d %d",a,b,c);
if (a=b)
{
max_ab = b;
min_ab = a;
}
else
{
max_ab = a;
min_ab = b;
}
if (max_ab = c)
printf("%d %d %d",c,max_ab,min_ab);
else if (max_ab c c min_ab)
printf("%d %d %d",max_ab,c,min_ab);
else if (max_ab c c =min_ab)
printf("%d %d %d",max_ab,min_ab,c);
}
输入三个数,判断前两个数,将大的数赋值给max_ab,小的数赋值给min_ab,再将max_ab与c作比较。若c大于等于max_ab,则输出c,max_ab,min_ab.若c小于max_ab且大于min_ab,则输出max_ab,c,min_ab.若c小于min_ab,则输出max_ab,min_ab,c
知识延展:
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
c语言 比较三个数大小
首先,我们需要接收键盘的输入,将三个数字存入对应的变量中。为了提高适用性,在这里建议大家使用 double 类型的变量来接收。然后,再进行第一轮比较,以便找出最大数。
比较方法:
1)比较从第一个数开始,先比较第一个数和第二个数的大小,如果第一个数大于第二个数,则将第一个数和第二个数互换;不大于(即等于或小于)则不作处理。
2)然后,再将第二个数和第三个数比较,同样,若大于则将它们互换。
注意:
如果仅是需要找出最大数,只需要进行一轮比较即可;同样的道理,如果只需要找出最小数,也只需要进行一轮比较,只是将上面的大于改成小于即可。
2
如果同时还需要求出最小数和中间数,则还需要进行第二轮比较。我们再从第一个数开始,方法与第一轮一样,只是已经不需要进行第一轮中的第 2)步比较,因为最后的第三个数已经是最大。
第二轮比较方法:
1)比较从第一个数开始,先比较第一个和第二个数的大小,如果第一个数大于第二个数,则将第一个数和第二个数互换。
这样,就分别得到了最小数、中间数和最大数。
如何实现
下面,根据上面的思路来编写 C 语言代码。为了让大家理解起来更容易,我这里采用的是思路最简单的编码方法,而不是代码最精简的方法。同时,我也尽量做到为每句关键的代码都添加相应的注释。
首先,包含相应的头文件 stdio.h,并添加一个 main 函数。
随后接收输入的三个数。在此需要注意的是,接收 double 类型的数值时应使用 %lf,而不是 %f。
接收输入的数之后,便可以开始进行第一轮比较。注意,第一轮比较共有两步,第一步是将第一个数与第二个数比较,第二步是将第二个数与第三个数比较。
然后,进行第二轮比较。
5
最后,输出结果。注意,输出时使用 %g 参数的作用是打印小数时不输出末尾的 0,这样更加整洁漂亮些。
参考资料
百度经验.百度[引用时间2018-5-3]
c语言中三个数比较大小
#includestdio.h
//#includewindows.h
voidmain()
{
intmax3(inta,intb,intc);
inta,b,c,result;
printf("Pleaseenterthreenumber:\n");
scanf("%d,%d,%d",a,b,c);
result=max3(a,b,c);
printf("Themaxofthreenumberis%d:\n",result);
//system("pause");
}
intmax3(inta,intb,intc)
{
intx,z;
if(ab)x=a;
elsex=b;
if(xc)z=x;
elsez=c;
returnz;
}
扩展资料
C语言:三个数由小到大排序
#includestdio.h
#includestdlib.h
intmain()
{
inta,b,c,t;//定义4个基本整型变量a,b,c,t;
printf("Pleaseinputa,b,c:");
scanf("%d%d%d",a,b,c);
//如果a大于b,借助中间变量t实现a、b值互换;
if(ac)
{
t=a;
a=b;
b=t;
}
//如果a大于c,借助中间变量t实现a、c值互换;
if(ac)
{
t=a;
a=c;
c=t;
}
//如果b大于c,借助中间变量t实现b、c值互换;
if(bc)
{
t=b;
b=c;
c=t;
}
printf("theorderofthenumberis:\n");
printf("%d,%d,%d",a,b,c);//输出a,b,c的值顺序输出;
system("pause");
return0;
}