0
已解决
赵泰来
高级光能
高级光能
哪错了???
#include<iostream> using namespace std; int w[100005]; int main(){ int a; for(int i=1;i<=100005;i++){ cin>>a; w[a]++; } for(int i=100005;i>=0;i--){ for(int j=1;j<=w[i];j++){ if(w[i]%2==0){ cout<<i<<" "; } } } for(int i=1;i<=100005;i++){ for(int j=1;j<=w[i];j++){ if(w[i]%2==1){ cout<<i<<" "; } } } return 0; }
0
已采纳
缪鲲鹏
新手光能
新手光能
你对桶的理解肯能有一些错误
假如这个数是2,但只出现了1次,则w[i]=1,如果直接w[i]%2==0的话,就会发现这个数被当成了错误的数,就会跳过
所以应该把w[i]%2==0改为w[i]!=0&&i%2==0
根据这个,再把另一个也改一下就好了
0
吴君昊
新手光能
新手光能
你用sort就好了
先定义cmp函数,把奇数和偶数分化,在从大到小排序,示例:
bool cmp(stu x,stu y){
if(x.a[i]!=y.a[i]){
return x.a[i]>y.a[i];
}
..................
}(仅为示例!!勿当真)
sort你会写吧
祝你AC
0
许金夫
初级天翼
初级天翼
首先sort是肯定的,所以#include<algorithm>也是肯定的
然后输入,sort。
接下来
for(int i=10;i>=1;i--) if(a[i]%2==0)
用这种方式从后往前输出偶数,在用同样的方法从前往后输出奇数
注意空格和数组空间哦~
祝你AC愉快
0
张帆
中级天翼
中级天翼
for(int j=1;j<=w[i];j++){
if(w[i]%2==0){
cout<<i<<" ";
}
}
这个地方
只用改成
if(i%2==0)
再循环a[i]次输出i就行了(下面也是一样的)
张帆在2020-02-29 13:55:11追加了内容
for(int i=1;i<=100005;i++){ cin>>a; w[a]++; }
还有这里
是i<=10
张帆在2020-02-29 13:56:26追加了内容
for(int i=100005;i>=0;i--){
还有这里
是i=100000
下面也是一样
0