1. 程式人生 > >PAT (Basic Level) Practice 1028 人口普查(20)(C語言實現)

PAT (Basic Level) Practice 1028 人口普查(20)(C語言實現)

某城鎮進行人口普查,得到了全體居民的生日。現請你寫個程式,找出鎮上最年長和最年輕的人。

這裡確保每個輸入的日期都是合法的,但不一定是合理的——假設已知鎮上沒有超過200歲的老人,而今天是2014年9月6日,所以超過200歲的生日和未出生的生日都是不合理的,應該被過濾掉。

輸入格式:

輸入在第一行給出正整數N,取值在(0, 10^5^];隨後N行,每行給出1個人的姓名(由不超過5個英文字母組成的字串)、以及按“yyyy/mm/dd”(即年/月/日)格式給出的生日。題目保證最年長和最年輕的人沒有並列。

輸出格式:

在一行中順序輸出有效生日的個數、最年長人和最年輕人的姓名,其間以空格分隔。

輸入樣例:

5
John 2001/05/12
Tom 1814/09/06
Ann 2121/01/30
James 1814/09/05
Steve 1967/11/20

輸出樣例:

3 Tom John

作者: CHEN, Yue

單位: PAT聯盟

時間限制: 200ms

記憶體限制: 64MB

程式碼長度限制: 16KB

#include<stdio.h>

struct rec{
    char name[6];
    int date;
};

int main()
{
    int N, cnt=0;
    struct rec old, young, temp;
    scanf("%d", &N);
    for(int i=0;i<N;i++){
        int ytem, mtem, dtem;
        scanf("%s %d/%d/%d", temp.name, &ytem, &mtem, &dtem);
        temp.date = ytem*10000 + mtem*100 + dtem;
        if(temp.date<=20140906&&temp.date>=18140906){
            cnt++;
            if(cnt==1)  old = young = temp;
            else if(temp.date<old.date) old = temp;
            else if(temp.date>young.date) young = temp;
        }
    }
    if(cnt) printf("%d %s %s", cnt, old.name, young.name);
    else printf("0"); //cnt為0的情況不能丟
    return 0;
}

相關推薦

PAT (Basic Level) Practice 1028 人口普查(20)C語言實現

某城鎮進行人口普查,得到了全體居民的生日。現請你寫個程式,找出鎮上最年長和最年輕的人。 這裡確保每個輸入的日期都是合法的,但不一定是合理的——假設已知鎮上沒有超過200歲的老人,而今天是2014年9月6日,所以超過200歲的生日和未出生的生日都是不合理的,應該被過濾掉。

PAT Basic 1054. 求平均值 (20)C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目本題的基本要求非常簡單:給定N個實數,計算它們的平均值。但複雜的是有些輸入資料

PAT Basic 1052. 賣個萌 (20)C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設

PAT Basic 1007. 素數對猜想 (20) C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目讓我們定義 d_n 為:d_n = p_{n+1} - p_n,其中 p_i

PAT Basic 1033. 舊鍵盤打字(20)C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該

PAT Basic 1017. A除以B (20)C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目本題要求計算A/B,其中A是不超過1000位的正整數,B是1位正整數。你需要輸

PAT Basic 1053. 住房空置率 (20)C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目在不打擾居民的前提下,統計住房空置率的一種方法是根據每戶用電量的連續變化規律進

PAT Basic 1008. 陣列元素迴圈右移問題 (20)C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目一個數組A中存有N(N>0)個整數,在不允許使用另外陣列的前提下,將每個

PAT (Basic Level) Practice 1027 列印沙漏(20)

此題連結:https://pintia.cn/problem-sets/994805260223102976/problems/994805294251491328 1027 列印沙漏(20)(20 point(s)) 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”

PAT 1028 人口普查(20)STL-set+思路+測試點分析

1028 人口普查(20)(20 分) 某城鎮進行人口普查,得到了全體居民的生日。現請你寫個程式,找出鎮上最年長和最年輕的人。 這裡確保每個輸入的日期都是合法的,但不一定是合理的——假設已知鎮上沒有超過200歲的老人,而今天是2014年9月6日,所以超過200歲的生日和未

PAT (Basic Level) Practice 1071 小賭怡情判斷條件的優化——異或

問題描述: 常言道“小賭怡情”。這是一個很簡單的小遊戲:首先由計算機給出第一個整數;然後玩家下注賭第二個整數將會比第一個數大還是小;玩家下注 t 個籌碼後,計算機給出第二個數。若玩家猜對了,則系統獎勵玩家 t 個籌碼;否則扣除玩家 t 個籌碼。 注意:玩家下注的籌碼數不能

1028 人口普查(20)20 分提問

某城鎮進行人口普查,得到了全體居民的生日。現請你寫個程式,找出鎮上最年長和最年輕的人。 這裡確保每個輸入的日期都是合法的,但不一定是合理的——假設已知鎮上沒有超過200歲的老人,而今天是2014年9月6日,所以超過200歲的生日和未出生的生日都是不合理的,應該被過濾掉。

PAT Basic 1025. 反轉連結串列 (25)C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為

PAT Basic 1015. 德才論 (25)C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目宋代史學家司馬光在《資治通鑑》中有一段著名的“德才論”:“是故才德全盡謂之聖人

PAT Basic 1020. 月餅 (25)C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目月餅是中國人在中秋佳節時吃的一種傳統食品,不同地區有許多不同風味的月餅。現給定

PAT Basic 1005. 繼續(3n+1)猜想C語言實現

題目 卡拉茲(Callatz)猜想已經在1001中給出了描述。在這個題目裡,情況稍微有些複雜。 當我們驗證卡拉茲猜想的時候,為了避免重複計算,可以記錄下遞推過程中遇到的每一個數。例如對n=3進行驗證的時候,我們需要計算3、5、8、4、2、1,則當我們對n=5、8、4、2進

PAT Basic 1045. 快速排序(25)C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目著名的快速排序演算法裡有一個經典的劃分過程:我們通常採用某種方法取一個元素作為

pat乙級1084 外觀數列c語言實現

#include<stdio.h>#include<string.h>#define MAXN 100005char s[MAXN],t[MAXN];char *ps,*pt;main(){    char now;//µ±Ç°¼ÆÊýint num,

pat 乙級1082 射擊比賽c語言實現

#include<stdio.h>#include<stdlib.h>typedef struct d{int id;int grade;}man;int cmp(const void*a,const void*b){man s1=*(man*)a;m

PAT乙級1065 單身狗C語言實現

總結: 1、我最初的想法是一遍遍去遍歷,但其實自己心裡也清楚這樣迴圈層數多,容易執行超時,所以以下思路借鑑柳婼小姐姐。 思路:定義情侶陣列couple[ ]={-1},每個人對應的編號的陣列儲存自己情侶的編號。這樣有情侶的人對應的初值不再是-1,其他對應值仍是-1