扯谈
快两天没发文章了.
题目
思路
定义四个数组:a,b,c,d
其中:
a数组:具体身高
b数组:性别
c数组:男生
d数组:女生
两个变量:cnt1=0(男生数组指针),cnt2=0(女生数组指针)
为了避免出现其他数据类型的问题,就开局直接:
#include<iostream>
#include<algorithm>
using namespace std;
#define int double
由于多组数据,所以
int t;
cin>>t;
while(t--){
}
首先输入:
int n;
cin>>n;
int cnt1=0;
int cnt2=0;
for(int i=1;i<=n;i++){
cin>>b[i];
}
for(int i=1;i<=n;i++){
cin>>a[i];
if(b[i]==1){
c[++cnt1]=a[i];
}
else{
d[++cnt2]=a[i];
}
}
输入中间自动分类!!!
for(int i=1;i<=cnt2;i++){
cout<<d[i]<<" ";
}
cout<<endl;
for(int i=1;i<=cnt1;i++){
cout<<c[i]<<" ";
}
这样输出因为题目中说先输出女生(因为女生优先)
恭喜你!WA 20pts
为什么???
忘了排序啊!
排序代码:
sort(c+1,c+cnt1+1);
sort(d+1,d+cnt2+1);
代码
上联:完整代码走一波!
#include<iostream>
#include<algorithm>
using namespace std;
#define int double
int a[100005];
int b[100005];
int c[100005];
int d[100005];
signed main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int cnt1=0;
int cnt2=0;
for(int i=1;i<=n;i++){
cin>>b[i];
}
for(int i=1;i<=n;i++){
cin>>a[i];
if(b[i]==1){
c[++cnt1]=a[i];
}
else{
d[++cnt2]=a[i];
}
}
sort(c+1,c+cnt1+1);
sort(d+1,d+cnt2+1);
for(int i=1;i<=cnt2;i++){
cout<<d[i]<<" ";
}
cout<<endl;
for(int i=1;i<=cnt1;i++){
cout<<c[i]<<" ";
}
}
return 0;
}
下联:点个关注再走呗
横批:还要点赞!