描述
在乙個有180人的大班級中,存在兩個人生日相同的概率非常大,現給出每個學生的學號,出生月日。試找出所有生日相同的學生。
輸入
第一行為整數n,表示有n個學生,n<100。
此後每行包含乙個字串和兩個整數,分別表示學生的學號(字串長度小於10)和出生月(1<=m<=12)日(1<=d<=31)。
學號、月、日之間用乙個空格分隔。
輸出
對每組生日相同的學生,輸出一行,
其中前兩個數字表示月和日,後面跟著所有在當天出生的學生的學號,數字、學號之間都用乙個空格分隔。
對所有的輸出,要求按日期從前到後的順序輸出。
對生日相同的學號,按輸入的順序輸出。
樣例輸入
500508192 3 2
00508153 4 5
00508172 3 2
00508023 4 5
00509122 4 5
樣例輸出
3 2 00508192 00508172
4 5 00508153 00508023 00509122
解題思路:
看到學生後有一排資訊,首先想到運用結構體,要求按各種順序輸出,然後要想到進行排序,最煩人的是要想到沒有生日相同的資料不輸出!!!(當時琢磨了半天**不對)
#include
#include
using
namespace std;
struct birth
;birth num[
100]
;int
main()
for(
int i=
0;i)//進行排序
for(
int j=i+
1;j(num[i]
.month==num[j]
.month&&num[i]
.day>num[j]
.day)
if(num[i]
.month==num[j]
.month&&num[i]
.day==num[j]
.day&&num[i]
.time>num[j]
.time)
}for
(int i=
0;i) cout<.month<<
" "<.day<<
" "<.id;
while
(num[i]
.month==num[i+1]
.month&&num[i]
.day==num[i+1]
.day)
//輸出生日相同的學生的學號
cout<} end:
return0;
}
生日相同(結構體)
描述 在乙個有180人的大班級中,存在兩個人生日相同的概率非常大,現給出每個學生的學號,出生月日。試找出所有生日相同的學生。輸入第一行為整數n,表示有n個學生,n 100。此後每行包含乙個字串和兩個整數,分別表示學生的學號 字串長度小於10 和出生月 1 m 12 日 1 d 31 學號 月 日之間...
2724 生日相同
兩個問題 1 多組輸入 記得用while迴圈 2 根據輸入時間進行排序 總時間限制 1000ms 記憶體限制 65536kb 描述在乙個有180人的大班級中,存在兩個人生日相同的概率非常大,現給出每個學生的學號,出生月日。試找出所有生日相同的學生。輸入第一行為整數n,表示有n個學生,n 100。此後...
生日不相同的概率
假設我們班有 50名同學,每個同學都報出自己的生日 每個同學的生日都不相重的概率只有 0.0296 如果有 100個同學,不相重的概率為 3.0725 10 7 相重複的概率如此之大與我們主觀想象不同。編寫程式,輸入同學的人數 n,計算出其生日不重複的概率。然後在用 的方法 利用隨機數產生每個同學的...