P1059 明明的隨機數

2021-09-26 10:38:08 字數 1390 閱讀 5878

題目描述

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數(n≤100),對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成「去重」與「排序」的工作。

輸入格式

輸入有兩行,第1行為1個正整數,表示所生成的隨機數的個數n

第2行有n個用空格隔開的正整數,為所產生的隨機數。

輸出格式

輸出也是兩行,第1行為1個正整數mm,表示不相同的隨機數的個數。

第2行為m個用空格隔開的正整數,為從小到大排好序的不相同的隨機數。

輸入輸出樣例

輸入

1020 40 32 67 40 20 89 300 400 15

輸出

815 20 32 40 67 89 300 400

先排序,再去重

1.排序方面用了快速排序的方法,先按要求排好序;

2.去重方面用了乙個全新的陣列來儲存符合的數字。

這是我個人的解法,大家多多指教,謝謝

#include

using namespace std;

int num1 =0;

//輸入數字個數

int a[

10001]=

;//輸入的數字

int b[

10001]=

;//去重後的數字

int num2 =0;

//輸出數字的個數

int k =1;

//迴圈變數

void

qsort

(int l,

int r)

}while

(i <= j);if

(l < j)

qsort

(l, j)

;//遞迴搜尋左半部分

if(i < r)

qsort

(i, r)

;//遞迴搜尋右半部分

}int

main()

qsort(1

, num1)

;//排序

for(

int j =

1; j <= num1; j++)}

cout << num2 << endl;

for(

int i =

1; i <= num2; i++

)return0;

}

P1059 明明的隨機數

題目描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了nn個11到10001000之間的隨機整數 n 100 n 100 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。...

P1059 明明的隨機數

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了nn個11到10001000之間的隨機整數 n 100 n 100 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明...

P1059 明明的隨機數(C C )

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 100 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 去重 與 排序 ...