帮我看看这C语言if语句三个数字按从小到大排列这哪里错了

#include <stdio.h>

void main()
{
int a,b,c,d;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
d=a;a=b;b=d;
if(a>c)
d=a;a=c;c=d;
if(b>c)
d=b;b=a;a=d;
printf("%d %d %d",a,b,c);
}
哪里错啦?求解!!!谢谢啦!!!

if语句没有大括号,如果三个if条件都满足就没错。
当第一个if不满足时,a=b;b=d;也有效,这就会产生错误了。另外两个也一样。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-29
faee
第2个回答  2012-02-29
if语句后边应该只有一个语句,若要执行多条语句需用大括号括起来,否则就是普通的语句;故你写的程序if(a>b)d=a;a=b;b=d;d=a;语句只在a>b的情况系执行,而后两句总执行;本回答被提问者采纳

c语言,按从小到大输出,哪里错了啊
if (a[i]>a[j])后面的三行应该用大括号包围。

用c语言将三个数从小到大排列,请纠错。
您好!很高兴为您解答。以下是改正后的代码:include<stdio.h> include<stdlib.h> main(){ int a,b,c,d;printf("请输入三个整数:\\n");scanf("%d,%d,%d",&a,&b,&c);if(a>b){d=a,a=b;} else{d=b;} if(c>d){printf("%d>%d>%d\\n",c,d,a);} else if(a>c)printf("...

C#编程 输入三个整数 按从小到大排列输出
if(*q1>*q3)swap(q1,q3);if(*q2>*q3)swap(q2,q3);} void main(){ void exchange(int *q1,int *q2,int *q3);void swap(int *a,int *b);int a,b,c,*p1,*p2,*p3;scanf("%d,%d,%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("%d<%d<%d",*p1,...

c语言 输入三个数 按大小排列 输出最大值,看下错在哪了。。。郁闷中
三个排序,设为其a,b,c 思路就是:先比较 a,b,如果a>b 就把a,b调换;再比较a,c,如果a>c 就把a,c调换.这样一来,第一个数必为最小。最后比较二三个数b,c。三个if语句大括号里面的语句功能都一样,都是把两个数互换。下面的示例代码输出三个浮点数由小到大的排列。如只需输出最...

C语言刚刚学,输入3个数,把它们按从小到大的顺序排列输出,有不理解的地...
void main(){ int x,y,z,t;printf("Please input three numbers:");scanf("%d %d %d",&x,&y,&z);if(x>y){ t=x;x=y;y=t;} if(x>z){ t=x;x=z;z=t;} if(y>z){ t=y;y=z;z=t;} printf("%d %d %d",x,y,z);} 首先没有加取地址符号;再有就是y和z换值时...

c语言随便输入三个数按从小到大排序
你这个没结果主要是你的判断语句有问题,比如a>b>c,相当于(a>b)>c,(a>b)如果满足就是逻辑值1,如果不满足就是逻辑0,就变成了0>c,或者1>c,就你输入的数肯定都不满足条件,所以if语句就不会执行。include<stdio.h> int main(){ int a,b,c,max1,max2,max3;scanf("%d%d%d",&a,...

c语言输入三个数从小到大排列看我哪里错了调试时值没变
是局部变量,只存在于max中。main中的a,b,c并不会因为max中的变化而变化。先仔细看看C语言程序设计中的参数传递,和函数调用的关系吧。我觉得这里就算是有人给你正确的答案,也是没有意义的,因为书看少了。另外,max的return,你编译能正确,但实际返回的是a的值。C语言没有这种多返回的功能。

C语言 3个数比大小,我这种做法什么地方不对呢
如果max>c执行这个,可是你另外一个条件 {if(c>min) \/\/max<c却包含在上面一个条件里,也就是说如果max<c根本就不会执行这个条件句.printf("%f%f%f",max,b,min);} 总体上看来逻辑很混乱,下面是修正后的核心部分,一行就可以搞定:max=c>(a>b?a:b)?c:(a>b?a:b)...

c语言判断三个数大小,到底哪里错了?
要把scanf中最后一个\\n去掉,就像这样:include<stdio.h>#include<stdlib.h>int main(){int x,y,z;scanf("%d%d%d",&x,&y,&z);if(x==y&&y==z)printf("正");elseprintf("长"); return 0;}

C语言比较三个数大小 帮我看看 哪里错了
h>int main(){int max(int x,int y,int z);int a,b,c,i;scanf("%d%d%d",&a,&b,&c);i=max(a,b,c);printf("max=%d\\n",i);return 0;}int max(int x,int y,int z){int j,k;if (x>y)j=x;else j=y;if(j>z)k=j;else k=z;return(k);} 输入格式2 3 7 ...

相似回答