题解 | #明明的随机数#

明明的随机数

https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> vec;
    int N;
    cin >> N;
    //将所有随机整数输入
    for(int i = 0; i < N; i++){
        int add_Num;
        cin >> add_Num;
        vec.push_back(add_Num);
    }
    if (N == 1) cout << vec[0]; //如果N为1,直接输出
    else{
    //去掉所有重复的数
        int counter, tester;

        for (counter = 0, tester = 0; counter < N-1; counter++){
            
            for(tester = counter + 1; tester < N;){
                if(vec[counter] == vec[tester]) {
                    vec.erase(vec.begin() + tester);
                    N--;
                    }
                else{
                    tester++; //如果N--生效,tester就不用+1,所以没有写在for的开头
                    }
                }
            } 
        }
        if (N == 1) cout << vec[0]; //如果去重之后M为1,直接输出
        else{    //从小到大排列
            int middle, counter1, counter2;//counter1用来表示正被比较的位数,counter2用来遍历
            for(counter1 = 0, counter2 = 0; counter1 < N-1; counter1++){
                for (counter2 = counter1 + 1; counter2 < N; counter2++){
                    if (vec[counter1] > vec[counter2]) {
                        middle = vec[counter1];
                        vec[counter1] = vec[counter2];
                        vec[counter2] = middle;
                        }
                    }
                }
            for (int num : vec) {
                cout << num << endl;
            }
        }
    }


全部评论

相关推荐

看网上风评也太差了
投递万得信息等公司8个岗位 >
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务