兔兔小小淘气 2021-05-03 11:53 采纳率: 66.7%
浏览 35

为什么是WA 90?到底哪里出错了

题目如下:

 

以下是我写的代码:

#include <iostream>

using namespace std;
#define N 100
class number
{
public:
    void input()
    {
        cin>>n;
    }
    int getn()
    {
        return n;
    }
    void change(int m)
    {
        n = m;
    }
    void output()
    {
        cout<<n;
    }
private:
    int n;

};
int clean(number Number[],int n)
{
    int i, t,j,k,m;
    for(i = 0;i<n-1;i++)//n-1
    {
        t = Number[i].getn();
        for(j = i+1;j<n;j++)
        {
            if(t == Number[j].getn())
            {


                for(k = j;k<n;k++)
                {
                    m = Number[k+1].getn();
                    Number[k].change(m);
                }
                n--;//1
            }
        }
    }
    return n;
}
void sort(number Number[],int n)
{
    int i,j,t1,t2;
    for(i = n - 1;i>0;i--)
    {
        for(j = 0;j<i;j++)
        {
            t1 = Number[j].getn();
            t2 = Number[j+1].getn();
            if(t1>t2)
            {
                Number[j].change(t2);
                Number[j+1].change(t1);
            }
        }

    }
}


int main()
{
    number Number[N];
    int n,m;
    cin>>n;
    int i;
    for(i = 0;i<n;i++)
    {
        Number[i].input();
    }
    m = clean(Number,n);
    sort(Number,m);
    cout<<m<<endl;
    for(i = 0;i<m;i++)
    {
        Number[i].output();
        cout<<' ';

    }
    return 0;
}

然后呢,结果是这样:

 

 

我知道有简单的算法,比如set库,或者直接用容量为1000的数组,我现在就想搞清楚我这里哪里错了。谢谢老师们了

 

  • 写回答

5条回答 默认 最新

  • CSDN专家-三岁丫 2021-05-03 12:34
    关注

    写法过于复杂了,其实数值的范围在 1000 的话,可以用桶排序,同时实现排序和去重

    评论

报告相同问题?

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表