问题标题: 酷町堂:3975 !(去重)排序2

0
0
已解决
曲天歌
曲天歌
高级光能
高级光能
#include<iostream>
using namespace std;
int a[10010]; 
int main(){
    int n,t,m;
    cin>>n>>m;
    for(int i=n;i>=1;i--){
        if(a[i]==m){
            continue;           
        }
    } 
    for(int i=n;i>=1;i--){
        cout<<i<<' ';
    } 
    return 0;
}

帮我找找错


0
已采纳
赵泰来
赵泰来
高级光能
高级光能

其实这道题很简单

桶排序(从大到小)中间加一个判断if(a[i]!=m)里面在输出i

 

赵泰来在2020-03-20 11:27:43追加了内容

已AC,同班同学,望采纳

0
陈曦
陈曦
资深天翼
资深天翼

思路如下:

 

遍历数组。
其数量 m 等于就跳过,
不等于 m 就输出。

陈曦在2020-03-20 11:29:07追加了内容

其数量 等于m 就跳过,

0
张海棠
张海棠
中级守护
中级守护

@曲天歌 你先把你写的代码删掉,我再把思路告诉你:

第一步:定义a[10009],n,t和m(int)

第二步:循环输入t,然后再循环里a[t]加1

第三步:循环从10000~1,循环里写一个if判断:如果
a[i]等于m,a[i]就赋值为0

第四步:外循环从10000~1,内循环从1~a[i],内循环里写
一个if判断:如果a[i]不等于m,就输出i和空格 

@曲天歌 希望你能AC  100分!加油!!

望采纳!!! 

0
赵朗
赵朗
高级光能
高级光能

定义数组

桶记录下标你自己写

重点到了 要倒着把数进行排序 (降序输出)

int i=10000;i>=0;i-- 写在for循环里

if判断里套循环

if判断里写a[i]!=m

请你将其中重复出现m(1~20)次的整数舍去

最后输出你自己写

整体你自己好好看看 

求采纳

0
龙舟
龙舟
高级光能
高级光能

你为什么这样写呀?不是应该用去重代码吗?

先输入n,再循环输入m,a[m]++;

再来一个循环i=10000;i>=0;i--

判断:如果a[i]!=m

for(int j=1;j<=a[i];j++)
            cout<<i<<" ";

ac,望采纳!!

0
曲天歌
曲天歌
高级光能
高级光能
#include<iostream>
using namespace std;
int a[10010]; 
int main(){
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=10000;i>=0;i--){
        if(a[i]!=m){
            for(int i=1;i<=a[i];i++)
                cout<<i<<" ";           
        }
    } 
    return 0;
}

不对呀

@龙舟

0
龙舟
龙舟
高级光能
高级光能

错了,cin>>n>>m;,m先不着急输入,只输入n

for(int i=1;i<=n;i++){

cin>>a[i];

}

这里输入m,不是a[i],再加一个a[m]++;,即

for(int i=1;i<=n;i++){

cin>>m;

a[m]++;

 

 

这里也错了,循环变量不是i,是j

for(int i=1;i<=a[i];i++)

0
邹昊轩
邹昊轩
资深光能
资深光能

唉,首先要排序,然后再去重!

if(b[a[i]]!=m){
            cout<<a[i]<<" ";
            b[a[i]]=0;
        }

0
高子健
高子健
新手天翼
新手天翼

@曲天歌 

还是听我的吧

for(int i=n;i>=1;i--){

 

if(a[i]==m){

 

continue;

 

}

 

}

把循环改成1~10000 i++

continue;

改成

a[i]=0;

 

 

 

 

 

 

 

 

 

 

 

 

 

双重循环

输出i

AC

高子健在2020-03-19 11:46:42追加了内容

还有输入

n,m;

t;

a[t]++

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

if(a[i]!=m){

}

去掉

在第二个循环里加

if(a[i]==m){
            continue;//打破本次循环
    }

我要回答