问题标题: 酷町堂:3812

0
0
已解决
吕梓瑜
吕梓瑜
初级天翼
初级天翼

题目穿梭仪————3812高考分排序
 

​
#include<bits/stdc++.h>

#include<algorithm>

#include<iostream>

#include<cstring>

#include<string>

#include<cstdio>

#include<cmath>

using namespace std;

int a[500005],b[755];

int main()

{

    //freopen(".in","r",stdin);

    //freopen(".out","w",stdout);

    int n;

    cin>>n;

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

        cin>>a[i];

        b[a[i]]++;
    }

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

        if(b[i]==1){

            cout<<i<<" ";

        }

    }

}

​

这是我的代码,为什么只有30分?


0
已采纳
张易晨
张易晨
新手光能
新手光能

两个问题:

1.

题目中说了,分数是>=0并且<=750的,所以你的第二个循环i要从0到750

2.

这个判断有问题,这个代码只会输出只出现一次的分数,但出现多次的分数不会输出

所以可以把条件改成if(b[i]>=1)或者是if(b[i]!=0)

0
李显晨
李显晨
中级启示者
中级启示者

第二个循环从0~750

判断写b[i]!=0

我要回答