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