菜鳥高階之路 P1059 明明的隨機數 洛谷

2021-10-05 12:38:35 字數 1423 閱讀 9713

一、題目部分

題目描述

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

輸入格式

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

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

輸出格式

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

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

輸入輸出樣例

輸入 #1

1020 40 32 67 40 20 89 300 400 15

輸出 #1

815 20 32 40 67 89 300 400

輸入 #2

820 40 321 67 40 40 89 15

輸出 #2

615 20 40 67 89 321

二、解題過程

思路

(1)輸入數字個數和相應的隨機數

(2)排序

(3)去重

(4)輸出排序和去重後的結果

提交ac答案

#include

using

namespace std;

int n,a[

100]

;int

del(

int*a,

int n)}}

}return cnt;

}int

main()

//排序

sort

(a,a+n)

;//去重

int ans=

del(a,n)

;printf

("%d\n"

,ans)

;for

(int i=

0;i)return0;

}

三、小結

(1)學會呼叫函式封裝,使main函式看起來簡潔,一目了然整體結構和做題思路;

(2)「=」是賦值,「==」是相等(細心);

(3)掌握scanf和printf的用法,擺脫只會用cin和cout的習慣;

(4)這次的題解去重的del函式裡用了數字0取代重複數字的方法,可以嘗試學習如何刪去重複數字的解題方法。

P1059 明明的隨機數

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

P1059 明明的隨機數

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

P1059 明明的隨機數

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