栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

蓝桥杯练习题一

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

蓝桥杯练习题一

题目描述

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 N 个 1 到 1000 之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

输入描述

第 1 行为 1 个正整数,表示所生成的随机数的个数:N。

第 2 行有 N 个用空格隔开的正整数,为所产生的随机数。

输出描述

输出 2 行,第 1 行为 1 个正整数 N,表示不相同的随机数的个数。

第 2 行为 N 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

输入输出样例

示例 1
输入

10
20 40 32 67 40 20 89 300 400 15

输出

8
15 20 32 40 67 89 300 400

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

根据该题的特性,直接先定义一个1001位的初始化为0的数组。 然后简单的输入元素中当用户输入数k时,则直接检查数组第k位有无元素(判断是否等于0),没有就把数放入数组。 输出元素时,只需要用循环输出元素不为0的数就可以了。

**方法一**
#include //头文件
using namespace std;
int main() {
    bool a[1001]={0};//定义一个布尔数组,0表示该数组没有数字
    int n,i,x,count;
    cin>>n;//输入数量
    for(i=1;i<=n;i++){
        cin>>x;//读入数据
        a[x]=1;//统计数据+去重(多个数相同只保存一次)
    }
    count=0;
    for(i=1;i<=1000;i++){
        if(a[i]==1){
        count++;//统计数量
        }
    }
    cout< 
**方法二**
#include 
using namespace std;
#include 
int main()
{
    int n;
    cin >> n;
    set s;         //集合有自动去重作用
    for (int i = 0; i < n; i++)
    {
        int temp;
        cin >> temp;
        s.insert(temp);
    }
    cout << s.size() << endl;
    for (set::iterator it = s.begin(); it != s.end(); it++)
    {
        cout << *it << " ";
    }

    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604598.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号