蓝桥杯今日份练习

简介: 蓝桥杯今日份练习

一、题目

先用计算机生成了n(1<=n<=100)个1到1000之间的随机整数,对于其中重复的数字,只保留一个,把其余相同的数去掉。然后再把这些数从大到小排序。总结就是“去重”和“排序”的工作。

输入格式

共两行,第一行为一个正整数n.第二行有n个用空格隔开的正整数,为所产生的随机数。

输出格式

第一行输出一个正整数m,表示不相同随机数的个数,第二行输出m个用空格隔开的正整数,为从小到大排好序的不相同的随机数

样例输入输出

image.png

二、思路

本题总体考点就是排序和去重。排序我选择老生常谈的冒泡排序,算是重温了一遍,为旧知识点。

而去重对我而言是新的知识点。

去重的基本思路是创建另一个数组,将原先已经排好序的数组每一个元素进行前后比较,若相同,就不拷贝前一个元素到新的数组里面,若不相同,就将前面一个元素拷贝到新的数组里面,注意打印时需要将新的数组元素自加!

三、源码

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
int main()
{
    int n;
    int arr[105];
    int count = 0;
    int replace[105];
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        cin >> arr[i];
    }
    for (int m = 0; m < n; m++)
    {
        for (int j = 0; j < n - m; j++)
        {
            if (arr[j] < arr[j + 1])
            {
                int tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }//回顾冒泡排序
    //去重前一般需要先排序
    /*for (int i=0;i<n;i++)
    {*/
        /*if (arr[i] == arr[i + 1])
        {
            replace[i] = arr[i];
            i++;
            count++;
        }*/
        //原先代码有问题,只考虑了重复两次的情况,若多余,三次重复或更多,就有问题
    int q=0;
    for (int i=0;i<n;i++)
    {
        if (arr[i] == arr[i + 1])
        {
            ;
        }
        else
        {
            replace[q++] = arr[i];//新数组自加
        }
    }
    for (int i=0;i<q;i++)
    {
        cout << replace[i]<<' ';
    }
    return 0;
}
相关文章
|
3月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
57 0
|
3月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
42 0
|
3月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
40 0
|
3月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
50 0
|
3月前
|
机器学习/深度学习 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
43 0
|
3月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
27 1
|
3月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-986 藏匿的刺客
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-986 藏匿的刺客
45 0
|
3月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-985 幸运的店家
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-985 幸运的店家
46 0
|
3月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-983 最大获利
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-983 最大获利
43 0
|
3月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-982 最小距离
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-982 最小距离
27 0