问题标题: 酷町堂:3975 找错

0
0
已解决
王鑫烨
王鑫烨
中级光能
中级光能

题目详情

3975   !(去重)排序2经验值:400

题目描述 Description

现在有n(n不超过10^5)个正整数(范围是1~ 10000),请你将其中重复出现m(1~20)次的整数舍去,剩下的数据按照降序输出,

输入描述 Input Description

第一行输入两个空格隔开的整数n m;

输出描述 Output Description

输出一行,若干个整数,空格隔开

样例输入 Sample Input

10 2 1 2 5 2 3 1 4 5 3 3

样例输出 Sample Output

4 3 3 3

 

我的错误代码:

#include<iostream>
using namespace std;
int a[10009]; 
int main(){
    int n,t,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>t;
        a[t]++;
    }
    for(int i=10000;i>=1;i--){
        if(a[i]==m){
            cout<<i<<' ';
        }
    } 
    return 0;
}

 


0
已采纳
张岳恒
张岳恒
资深光能
资深光能

你错的有点多

首先,输入

再来一个遍历桶数组

如果a[i]==m a[i]清零

双重循环遍历桶数组,输出i

AC,la;

望采纳

0
0
朱子尘
朱子尘
初级光能
初级光能

题目上说:

而你

if(a[i]==m){

cout<<i<<' ';

}

怎么没舍去,还又输出了

这个我给你两个结构

1    if

2    if  else

自己选用哪个

如果还不对跟我说(是你作业吧)

0
王鑫烨
王鑫烨
中级光能
中级光能
#include<iostream>
using namespace std;
int a[10009]; 
int main(){
    int n,t,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>t;
        a[t]++;
    }
    for(int i=10000;i>=1;i--){
        if(a[i]==m){
            i=0;
        }
        else{
            cout<<i<<' ';
        }
    } 
    return 0;
}

 

0
李素妍
李素妍
新手天翼
新手天翼

a[i]==m

退出本次循环:continue

0
0
朱子尘
朱子尘
初级光能
初级光能

好吧,既然你想不到,那我告诉你吧,如果a[i]==m,要舍去是吧,那你肯定不能用break,要用continue

0
董宇昊
董宇昊
初级启示者
初级启示者

作业题!!

我和他是同学!!

小心我告王老师!!!

我要回答