c语言求三个数排序问题
解决时间 2021-02-25 04:13
- 提问者网友:藍了天白赴美
- 2021-02-24 15:25
下面是我写的代码、我检查了一下、我觉得应该能行的。可是为什么我输入 6 7 8应该输入6 7 8的、可是输出的是 6 6 8、我看了很久也不知道哪里被弄混了请各位看看哪里错了。改改、但是不要给我什么其他的方法、我也会百度、、 #include
void main(){
int a,b,c,a1,b1,c1;
printf("请输入三个数空格隔开\n");
scanf("%d%d%d",&a,&b,&c);
if(a if(a a1=a;
b1=b>c?c:b;
c1=b>c?b:c;
}else a1=c;b1=a;c1=b;
}else{
if(b a1=b;
b1=a>c?c:a;
c1=a>c?a:c;
}else a1=c;b1=b;c1=a;
}
printf("从小到大是:%d,%d,%d\n",a1,b1,c1);
}
最佳答案
- 五星知识达人网友:由着我着迷
- 2021-02-24 15:32
#include
void main()
{
int a,b,c,a1,b1,c1;
printf("请输入三个数空格隔开\n");
scanf("%d%d%d",&a,&b,&c);
if(a
{
if(a
{
a1=a;
b1=b>c?c:b;
c1=b>c?b:c;
}
else
{
a1=c;b1=a;c1=b;
}
}
else
{
if(b
{
a1=b;
b1=a>c?c:a;
c1=a>c?a:c;
}
else
{
a1=c;b1=b;c1=a;
}
}
printf("从小到大是:%d,%d,%d\n",a1,b1,c1);
}
// 黑体标出来的部分是一个整体,不能分开的。
// 测试结果:
全部回答
- 1楼网友:人间朝暮
- 2021-02-24 17:29
else a1=c;b1=a;c1=b;
该为:else{ a1=c;b1=a;c1=b;}
else a1=c;b1=b;c1=a;改为:else {a1=c;b1=b;c1=a;}
- 2楼网友:患得患失的劫
- 2021-02-24 17:10
if(ac?c:b;
c1=b>c?b:c;
}else a1=c;b1=a;c1=b;等同于if(ac?c:b;
c1=b>c?b:c;
}else a1=c;b1=a;c1=b;
这样就逻辑错误了,在C里面,如果一段代码是彼此关联放在一个执行体内,则需要用{}括起来,如果这段代码只有一句,则可以忽略{},因此以上代码应该以以下形式出现if(ac?c:b;
c1=b>c?b:c;
}else{ a1=c;b1=a;c1=b;}
我要举报
大家都在看
推荐资讯