生日相同(結構體)

2021-10-03 06:37:38 字數 1460 閱讀 1845

描述

在乙個有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,計算出其生日不重複的概率。然後在用 的方法 利用隨機數產生每個同學的...