PAT 乙等 1059 C語言競賽 C語言

2021-08-03 07:03:36 字數 1766 閱讀 9462

時間限制

200 ms

記憶體限制

65536 kb

**長度限制

8000 b

判題程式

standard

作者

chen, yue

c語言競賽是浙江大學計算機學院主持的乙個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽:

0. 冠軍將贏得乙份「神秘大獎」(比如很巨大的一本學生研究**集……)。

1. 排名為素數的學生將贏得最好的獎品 —— 小黃人玩偶!

2. 其他人將得到巧克力。

給定比賽的最終排名以及一系列參賽者的id,你要給出這些參賽者應該獲得的獎品。

輸入格式:

輸入第一行給出乙個正整數n(<=10000),是參賽者人數。隨後n行給出最終排名,每行按排名順序給出一位參賽者的id(4位數字組成)。接下來給出乙個正整數k以及k個需要查詢的id。

輸出格式:

對每個要查詢的id,在一行中輸出「id: 獎品」,其中獎品或者是「mystery award」(神秘大獎)、或者是「minion」(小黃人)、或者是「chocolate」(巧克力)。如果所查id根本不在排名裡,列印「are you kidding?」(耍我呢?)。如果該id已經查過了(即獎品已經領過了),列印「id: checked」(不能多吃多占)。

輸入樣例:

6

1111

6666

8888

1234

5555

0001

68888

0001

1111

2222

8888

2222

輸出樣例:
8888: minion

0001: chocolate

1111: mystery award

2222: are you kidding?

8888: checked

2222: are you kidding?

思路:首先定義學生結構體,結構體有兩個成員,1.rank表示排名,從1開始,排名0表示沒有排名;2.flag,表示是否被領過獎(查詢過),0表示沒有領過獎。

0.定義乙個10001個元素的學生結構體陣列;

1.先將所有結構體排名初始化為0;

2.根據輸入在相應學生處寫入排名。

3.緊接著開始查詢學生得獎情況,記得每查過乙個修改相應flag

**:

#include "stdio.h"

#include "math.h"

typedef struct

student;

int isprime(int num);

int main()

for(int i = 1; i <= n; i++)

int m;//要查詢的個數

scanf("%d",&m);

for(int i = 0; i < m; i++)

else if(students[tmp].flag)

else if(students[tmp].rank == 1)

else if(isprime(students[tmp].rank))

else

}return 0;

}int isprime(int num)

else

}} return ret;

}

PAT乙 1059 C語言競賽

c語言競賽是浙江大學計算機學院主持的乙個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽 0.冠軍將贏得乙份 神秘大獎 比如很巨大的一本學生研究 集 1.排名為素數的學生將贏得最好的獎品 小黃人玩偶!2.其他人將得到巧克力。給定比賽的最終排名以及一系列參賽者的id,你要給出這些參賽者應該...

PAT 乙級 1059 C語言競賽

題目 輸入樣例 6 1111 6666 8888 1234 5555 0001 68888 0001 1111 2222 8888 2222 輸出樣例 8888 minion 0001 chocolate 1111 mystery award 2222 are you kidding?8888 ch...

1059 C語言競賽

c語言競賽是浙江大學計算機學院主持的乙個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽 0.冠軍將贏得乙份 神秘大獎 比如很巨大的一本學生研究 集 1.排名為素數的學生將贏得最好的獎品 小黃人玩偶!2.其他人將得到巧克力。給定比賽的最終排名以及一系列參賽者的id,你要給出這些參賽者應該...