c程序比较三个数大小

作者&投稿:挚梵 (若有异议请与网页底部的电邮联系)
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
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语句便可输出答案效率更高一点。

比较方法:
1、比较从第一个数开始,先比较第一个数和第二个数的大小,如果第一个数大于第二个数,则将第一个数和第二个数互换;不大于(即等于或小于)则不作处理。
2、然后,再将第二个数和第三个数比较,同样,若大于则将它们互换。
以1
2
3为例
先考虑我们所有的可能输入类型(这里不一一列举):1
2
3;3
2
1
;2
1
3;1
1
1;1
2
2;1
2
1;整体的思路为输入三个数后,我们从中取两个数,在这两个数中选出最大的后将最大的数与第三个数做差比较这里请参考代码理解;
代码:
#include
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语句便可输出答案效率更高一点。

改成这样:
#include<stdio.h>
void 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
",e);
}

int max(int x,int y,int z)
{
int m;
if (x>y) m=x;
else m=y;
if (z>m) m=z;
else return(m);
}

扩展资料:

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

参考资料:c程序_百度百科



1.scanf函数使用错误,应改为 :

scanf("%d,%d,%d",&a,&b,&c);

需要注意的是,上述语句在输入数据时需要加“,”,如“2,3,4”。

如果"%d"是连着写的,例如:scanf("%d%d%d",&a,&b,&c);

则在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格、tab键或者回车键)分隔。

2.函数max( )错误,若z为最大值时,函数无返回值。函数max( )应修改为:

int max(int x, int y, int z) {

if (x>y) m=x;

else m=y;

if (z>m) m=z;

return(m);  //返回最大值m

}

资料拓展:

scanf函数的调用格式为:scanf("<格式化字符串>", <参量表>);

函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于参量表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。

参考资料:百度百科-scanf



代码没有问题,

不过你的输入没按照你自己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
",d);
}
int max(int x,int y,int z)//子函数体,比较大小返回最大值
{
int m,int n;
if(x>y) m = x;
else m = y;
if(m>z) n = m;
else n = z;
return(n);
}



输入三个数

找到最大的和最小的

输出三个数。 

#include <stdio.h>
int main()
{
    int a,b,c,min,max;
    scanf("%d%d%d",&a,&b,&c);
    max=min=a;
    if(max<b) max = b;
    if(max<c)max=c;
    if(min>b)min=b;
    if(min>c)min=c;
    printf("%d %d  %d
", min, a+b+c-min-max, max);
    return 0;
}


1、利用函数的调用(不懂就去学习函数)
# include<stdio.h>

void max(int a,int b,int c)
{

if(a>b && b>c)
printf("%d %d %d\n",a,b,c);

else if(a>c && c>b)
printf("%d %d %d\n",a,c,b);

else if(b>c && c>a)
printf("%d %d %d\n",b,c,a);

else if(b>a&&a>c)
printf("%d %d %d\n",b,a,c);

else if(c>a && a>b)
printf("%d %d %d\n",c,a,b);

else if(c>b && b>a)
printf("%d %d %d\n",c,b,a);

else
printf("%d %d %d\n", a, b, c);

}

int main(void)
{
int a,b,c;
printf("请输入第一个数后空格,输入第二个数后空格,输入第三个数后回车:\n");

scanf("%d %d %d",&a,&b,&c);

max(a,b,c);

return 0;
}
2.
# include<stdio.h>

int main(void)
{
int a,b,c;
printf("请输入第一个数后空格,输入第二个数后空格,输入第三个数后回车:\n"); //这里加了一个换行符

scanf("%d %d %d",&a,&b,&c);

if(a>b && b>c)
printf("%d %d %d\n",a,b,c);

else if(a>c && c>b)
printf("%d %d %d\n",a,c,b);

else if(b>c && c>a)
printf("%d %d %d\n",b,c,a);

else if(b>a&&a>c)
printf("%d %d %d\n",b,a,c);

else if(c>a && a>b)
printf("%d %d %d\n",c,a,b);

else if(c>b && b>a)
printf("%d %d %d\n",c,b,a); //和楼上一样,你这里缺少个分号

else
printf("%d %d %d\n", a, b, c);

return 0;
}
我这里用的是这个整体框架,和你那样写的是一样的,但你这样写void main()有的编译器会报错
int main(void)
{

return 0;
}
楼主,你的思路基本正确,但是你编写的这个语句,有个逻辑错误,就是使用if...else..if...else语句,要注意一个问题,最后要加上个else语句作为程序的结束。
建议:今后一定要要编写出高质量的代码,还有程序要整洁,因为程序很大的时候,就会感觉很乱,因为你以后进公司编写的代码不只是自己看,别人看不懂的话那是不行的,希望可以帮助到楼主,还有不懂的可以在线百度HI问我


C语言程序设计中如何比较三个数的大小
思路:比较三个数的大小可以先求出最大值和最小值,这样中间数就是三个数的和减去最大数和最小数。参考代码:include <stdio.h> int main(){ int a,b,c,max,min; scanf("%d%d%d",&a,&b,&c); max=(a>b?a:b)>c?(a>b?a:b):c; min=(a<b?a:b)<c?(a...

设计算法找出三个数中的最大值
有a,b,c三个数,比较它们的大小 方法一,按顺序两两比较,取较大的 if (a > b) {max = a;} else {max = b;}if (max < c) {max = c;} 方法二,假设第一个是最大的,与后面两个数进行比较,将较大的值赋给max int max = a;if (b > max) {max = b;}if (c > max)...

三个数比较大小的c语言程序
include<stdio.h> int main(){ int a,b,c,t;printf("请输入三个整数:");scanf("%d%d%d",&a,&b,&c);if(a>b){t=a; a=b; b=t;} \/\/a与b若大小顺序不对,就交换位置 if(a>c){t=a; a=c; c=t;} \/\/a与c若大小顺序不对,就交换位置;到此a肯定是最小 if(b>c...

c语言 比较三个数大小
比较方法:1、比较从第一个数开始,先比较第一个数和第二个数的大小,如果第一个数大于第二个数,则将第一个数和第二个数互换;不大于(即等于或小于)则不作处理。2、然后,再将第二个数和第三个数比较,同样,若大于则将它们互换。以1 2 3为例 先考虑我们所有的可能输入类型(这里不一一...

c语言程序比较三个数的大小,可以编译运行,但是输的结果是错的,这是...
错就错在代码上,不是“代码没问题”,而是“代码的问题没有被纠正”。请把第7,9,11行中的逗号,修改为 &&,然后重新编译。另外,运行时输入的三个数字之间的逗号,也不能是中文逗号,运行时,请把中文输入法关闭后,输入英文的逗号。这样就可以得出正确结论了。

c程序比较三个数大小
改成这样:#include<stdio.h>void 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);} int max(int x,int y,int z){int m;if (x>y) m=x;else m=y;if (z>m) m=z;else return(m);} ...

我是个初学C语言的,要个写程序比较三个数字的大小,并输出最小的哪个,该...
include<stdio.h> int main(){ int a,b,c,min;scanf("%d%d%d",&a,&b,&c);if(ac) min=c;\/\/如果c比a,b当中小的那个还小,那么c就是最小的。否则a,b当中的小的最小。printf("%d\\n",min);return 0;}

编写一个程序,输入abc三个值,输出其中最大值。
1、javaif语句 if(a>b){ if(a>c){ System.out.println("三个数中的最大值为"+a);}else{System.out.println("三个数中的最大值为"+c);} }else if(b>c){ System.out.println("三个数中的最大值为"+b);}else{ System.out.println("三个数中的最大值为"+c);} 2、三目运算...

C++编写一个程序,用来求2个或3个正整数中最大的数,不带默认参数?_百度...
这个只能使用函数的重载做,注意函数名一样,但是参数个数不一样:include <iostream> using namespace std;\/\/比较两个数,输出最大值 int compareNumbers(int numA,int numB){ return numA>numB?numA:numB;} \/\/比较三个数,输出最大值 int compareNumbers(int numA,int numB,int numC){ int i...

C++三个数比大小
示例代码如下:include <iostream>using namespace std;int main(){ int a, b, c; cin >> a >> b >> c;\/\/输入三个数 if (a < b)a=b;\/\/如果b比a大,更新a if (a < c)a=c;\/\/如果c比a大,更新a cout << a << endl;\/\/输出最大数a return 0;} ...

中江县18591719259: 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); }输入三个数(空格隔开),先比较前两个数大小,将较大的...

中江县18591719259: c 语言中 比较三个数大小的程序怎么写 -
绪姬重组: #include<stdio.h> void main() {int a,b,c,max; printf("输入数:"); scanf("%d%d%d",&a,&b,&c);if(a>b&&a>c){max=a; printf("max=%d",a); } else if(b>a&&b>c){ max=b; printf("max=%d",b); } else max=c; printf("max=%d",c);}这...

中江县18591719259: 用C语言写比较三个数大小的程序. -
绪姬重组: #include "Stdio.h" #include "Conio.h"main() { int *i,j,k,n,m,s; int a[3];i=a; printf("input a number:\n");for(i=a;i<=a+2;i++) scanf("%d",i);i=a; for(j=0;j<=2;j++){for(k=0;k<=2;k++){if(*(i+j)<*(i+k))n=*(i+j);if(*(i+j)>*(i+k))m=*(i+j);} }i=a;...

中江县18591719259: c语言比较3数大小 -
绪姬重组: 这是我写的! main() { int a,b,c,d,f; printf("san:\n"); scanf("%d %d %d",&a,&b,&c); d=(a>b?a:b); f=(d>c?d:c); printf("%d",f); }你的错误之处有!if(a>c) printf("%d",&a); else printf("%d",&c); else if(b>c) printf("%d",&b); else if(c>b) ...

中江县18591719259: C语言程序设计中如何比较三个数的大小 -
绪姬重组: 思路:比较三个数的大小可以先求出最大值和最小值,这样中间数就是三个数的和减去最大数和最小数. 参考代码: #include int main() { int a,b,c,max,min; scanf("%d%d%d",&a,&b,&c); max=(a>b?a:b)>c?(a>b?a:b):c; min=(a printf("三个数按从小到大顺序为:%d %d %d\n",min,a+b+c-min-max,max); return 0; } /* 输出: 8 1 6 三个数按从小到大顺序为:1 6 8 */

中江县18591719259: c语言 比较三个数的大小 这么编程 -
绪姬重组: 输入三个数 找到最大的和最小的 输出三个数. #include <stdio.h> int main() {int a,b,c,min,max;scanf("%d%d%d",&a,&b,&c);max=min=a;if(max<b) max = b;if(max<c)max=c;if(min>b)min=b;if(min>c)min=c;printf("%d %d %d\n", min, a+b+c-min-max, max);return 0; }

中江县18591719259: C语言:编写一个程序实现3个数之间大小的比较.将最大的数输出 -
绪姬重组: #include<stdio.h> main() { int a,b,c,d; printf("输入3个数:");//输入3个数 scanf("%d%d%d",&a &b &c);if(a>b)//比较大小并输出较大在数 d=a ; else d=b; if(d>c) printf("%d",d); else printf("%d",c); }

中江县18591719259: C语言 比较三个数大小 -
绪姬重组: 您好!很高兴为您解答.程序的最后一行错了.以下是改正后的代码: #include <stdio.h> void main() {float a,b,c,x,y;printf("please input a,b,c\n");scanf("%f%f%f",&a,&b,&c);{if(a>b)x=a;else x=b;if(x>c)y=x;else y=c;}printf("max=%f\n",y); }望采纳~

中江县18591719259: 比较三个数大小的C语言程序
绪姬重组: 3个数比较2次就可以了 #Include "stdio.h" void main() { int a,b,c,ax; if(a>b) { if(a>c) max=a; else max=c; } else { if(b>c) max=b; else max=c; }

中江县18591719259: 菜鸟提问,用C语言编一个能比较三个数大小的程序??? -
绪姬重组: #include<stdio.h> int main() { float a,b,c,t; printf("请输入3个数abc\n“); scanf("%f%f%f",&a,&b,&c); if(a>b) t=a; else t=b; if(t>c) printf("最大值为%f",t); else printf("最大值为%f",c); return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网