竞赛
考级
#include<bits/stdc++.h> using namespace std; int n=3,a[5]; bool cmp(int x,int y){ return x>y; } int main(){ for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++){ cout<<a[i]<<' '; } return 0; }
本题我们可以这样思考:输入了3个整数,按照降序(从大到小)排列,由于只有3个数,所以第一个数即为3个数的最大值,最后一个数为这三个数的最小值。那么中间的那个数就可以表示为这3个数的和减去最大值和最小值。代码如下:
错误示例: 提交会得到: 正确代码: 提交了就: 了
怎么简单不发题解赚罐头吗??
简单死了
点个赞再走吧T^T
题意 从键盘输入一行三个整数,将这三个数从大到小排序后输出。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 思路 1.定义数组:用数组 a 存储输入的三个整数。 2.输入数据:用循环输入 3 个整数,存入数组下标 1、2、3 的位置。 3.排序:使用 sort 函数对这 3 个数进行从小到大排序。 4.逆序输出:从数组最后一个元素往前输出,实现从大到小的效果。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 完整代码
时间复杂度O(1),swap函数:
map是啥我不知道,反正不需要用到map 代码:
#include <iostream> #include <bits/stdc++.h> using namespace std; using ll = long long; int main() { ios::sync_with_stdio(0); cin.tie(0); int a[3]; cin >> a[0] >> a[1] >> a[2]; sort ( a,a + 3 ); cout << a[2] << " " << a[1] << " " << a[0]; return 0; }
提交答案之后,这里将显示提交结果~