題目描述
明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了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 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 去重 與 排序 ...