用户:
寂寞de奶酪查看:8 回复:5 评论:8 创建时间:2023-07-22T19:35:43
题目背景
小T对手工很感兴趣,立志成为一名工匠。他一到暑假就会到自家开的工厂里帮工人师傅打下手,学习一些身为工匠应具备的技能。
题目描述今天小T需要帮工人师傅把原材料摆好顺序。现在小T面前有 3 堆原材料,已知它们的重量,需要按重量从大到小的顺序摆放。
请你帮小T计算一下这些原材料按要求摆放出来是什么样的。
输入格式第一行一个整数 a,表示第一堆原材料的重量。
第二行一个整数b,表示第二堆原材料的重量。
第三行一个整数 c,表示第三堆原材料的重量。
输出格式共三行,第一行输出最重的原材料的重量,第二行输出第二重的,第三行输出最轻的原材料重量。
样例数据 输入样例 #11
2
3
输出样例 #1
3
2
1
数据范围
对于 100% 的数据<10的8次方
死神Basic这题太简单,不解析了,上代码:
#include<iostream>
namespace lib{
template<typename _ArrayType,typename _Integer>
inline void sort(_ArrayType *_a,_Integer _first, _Integer _last, bool _Compare=false){
if(_first>=_last) return;
_ArrayType t=_a[_first];
_a[_first]=_a[_first+_last>>1];
_a[_first+_last>>1]=t;
_ArrayType _x=_a[_first],_i=_first,_j=_last;
while(_i<_j){
while(_Compare?_a[_j]<=_x:_a[_j]>=_x&&_i<_j) --_j;
_a[_i]=_a[_j];
while(_Compare?_a[_i]>=_x:_a[_i]<=_x&&_i<_j) ++_i;
_a[_j]=_a[_i];
}
_a[_i]=_x;
sort(_a,_first,_i-1);
sort(_a,_i+1,_last);
}
}
static const int N=3+1;
int a[N],n=3;
int main(){
for(int i=1;i<=n;i++)
std::cin>>a[i];
lib::sort(a,1,n,true);
for(int i=1;i<=n;i++)
std::cout<<a[i]<<std::endl;
return 0;
}点赞0
评论
aOrangesoft楼下的其实不用这样,太复杂了
#include <iostream>
using namespace std;
int a[4];
int main(){
for (int i = 1;i <= 3;i++){
cin >> a[i];
}
for (int i = 1;i <= 3;i++){
for (int j = 1;j <= 3-i;j++){
if (a[j] < a[j+1]){
int k = a[j];
a[j] = a[j+1];
a[j+1] = k;
}
}
}
for (int i = 1;i <= 3;i++){
cout << a[i] << "\n";
}
}点赞0
评论
实际上可以用冒泡排序思想
这个比较简便,随手写的,错误请指出
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,t;
cin >> a >> b >> c;
if(c>b)
{
t=b;
b=c;
c=t;
}
if(b>a)
{
t=a;
a=b;
b=t;
}
if(c>b)
{
t=b;
b=c;
c=t;
}
cout << a << b <<c;
return 0;
}
点赞0
评论