服了啊,找不到错啊

来源:题库【语法】分支结构
3. 从大到小
题目ID:9873 100分
最新提交:Wrong Answer 55 分
历史最高:Wrong Answer 55 分
时间限制: 200ms
空间限制: 32768kB

题目描述

将输入的3个数,从大到小输出。

输入格式

仅一行,包含3个整数 a,b,c,以空格间隔。

输出格式

仅一行,包含3个整数 a,b,c,以空格间隔。

样例

Input 1

1 2 3

Output 1

3 2 1

样例解释

样例输入1表示输入的三个数分别为1、2、3,样例输出1表示从大到小输出的结果为3、2、1。

数据范围

0<=a,b,c<=10000<=a,b,c<=1000,且 a,b,c 互不相等。

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
int ma = max(a, max(b, c));
int mi = min(a, min(b, c));
cout << maximum << " ";
if (ma == a && mi == b) {
cout << c;
} else if (ma == a && mi == c) {
cout << b;
} else if (ma == b && mi == c) {
cout << a;
}
cout << " " << mi;
return 0;
}

找不到一点错。

1 个赞

没判 ma==c,mi==a ,以此类推的很多组合,你这还不如用sort

1 个赞

有没有可能别人没学

1 个赞

你这个代码有点麻烦,你既然已经求出了最大值和最小值,那么你用三个数的总和减去最大值和最小值就是中间值了,然后在逐个输出即可,这样比较方便

不要脸的求解决方案 @韩翊

1 个赞

贴上暴力枚举6个全排列的伪代码

#include<bits/stdc++.h>//不用在意这个万能头,xjoi会报错
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
if(a>b&&b>c)cout<<a<<" "<<b<<" "<<c;
if(a>b&&b<c)cout<<a<<" "<<c<<" "<<b;
if(b>a&&a<c)...
...
return 0;
}

简单易学,通俗易懂

还有我记得题目复制到帖子上是要用markdown与 \LaTeX 格式化的

1 个赞

这是什么鬼?

1 个赞

我是这么打的,85分

1 个赞

还要判断等于的情况

就是
if(a==b&&b>c)
if(a==b&&b<c)
if(b==c&&a>b)
...

对啊,我知道,正在改

1 个赞

孩子,你知道数组和sort吗

我直接输入一个数组然后sort就过了

1 个赞

求解决方案因为我觉得这个思路最最最简略

1 个赞

你也不看看人家是什么水平。。。

突然发现的且 � , � , � a,b,c 互不相等。

1 个赞

用上面的那种试一试

静静的看着一群人争论一道远古题目

快乐极了

2 个赞

@huangfeidong 你的方法我已经说过了!

用swap交换
这个简单