竞赛
考级
求求了点个赞吧!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 老版: 新版:
这个是现代C++,差不多,但好看 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊 点赞啊点赞啊点赞啊点赞啊点赞啊点赞啊
这题真的要用结构体吗?一个sort搞定。
好烦的方法
判断输入是负数还是正数,然后直接用sort排序
首先我们先看题目,他要求把男生和女生分开排序,那么我们就需要判断他是男生还是女生,题目有说男生用整数,女生用负数,这道题其实很简单不用结构体,只需要把他们分开排序就好了 首先呢,我们就只需要简单的进行输入,再定义两个数组分别储存男生和女生的身高和两个变量用来计数男生和女生的数量 然后我们再用for循环来把他们分类成男生和女生把他储存在a和b两个数组里面,再记录个数(用来排序) 接着我们要对他们进行排序,因为sort是默认从小到大,而女生又是负数形式,所以不用加排序方式 最后我们再进行输出就可以了 整体代码: 无注释版;
#include <iostream> #include <bits/stdc++.h> using namespace std; int n,c,a1=0,b1=0,a[210],b[210]; int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for (int i = 0; i < n; i++) { cin >> c; if (c > 0) { a[a1] = c; a1++; } else { b[b1] = c; b1++; } } sort( a, a + a1 ); sort( b, b + b1 ); for ( int i = 0; i < a1; i++ ) cout << a[i] << " "; for ( int i = 0; i < b1; i++ ) cout << b[i] << " "; return 0; }
纯数组(array+vector)+排序sort: 普及一下:GREATER<INT>(); * sort(起始位置, 结束位置) → 升序(小 → 大) * sort(起始位置, 结束位置, greater<int>()) → 降序(大 → 小)
方法有点复杂, 总体来说就是先读取, 再分拣排序,最后输出
#include<bits/stdc++.h> using namespace std; int main() { int n,a[205], b[205], c[205], b2 = 1, c2 = 1; cin>>n; for(int i = 1; i <=n; i++) { cin >> a[i]; if(a[i]>0) { b[b2] = a[i]; b2++; } if(a[i]<0) { c[c2] = a[i]; c2++; } } }
#include <bits/stdc++.h> using namespace std; int main(){ int n,a[105]{},b[105]{},c[105]{}; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++){ if(a[i]>0)b[i]=a[i]; if(a[i]<0) c[i]=a[i]; } sort(b+1,b+n+1); sort(c+1,c+n+1); for(int i=1;i<=n;i++){ if(b[i]==0)continue; cout<<b[i]<<" "; } for(int i=1;i<=n;i++){ if(c[i]==0)continue; cout<<c[i]<<" "; } return 0; }
当然cmp函数可以换成greater随你们便 点赞的拥有彦祖亦菲的颜值、高斯的智力、马斯克的财富
提交答案之后,这里将显示提交结果~