PAT-B 1028 人口普查【時間】
PAT-B 1028 人口普查
https://pintia.cn/problem-sets/994805260223102976/problems/994805293282607104
題目
某城鎮進行人口普查,得到了全體居民的生日。現請你寫個程式,找出鎮上最年長和最年輕的人。這裡確保每個輸入的日期都是合法的,但不一定是合理的——假設已知鎮上沒有超過 200 歲的老人,而今天是 2014 年 9 月 6 日,所以超過 200 歲的生日和未出生的生日都是不合理的,應該被過濾掉。
輸入
輸入在第一行給出正整數 N,取值在(0,105];隨後 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
分析
簡單題,但是要注意,當有效生日的個數等於0時,只需輸出0即可。
C++程式
#include<iostream>
#include<cstring>
using namespace std;
struct People{
char name[10];
int time;
}old,young;
int main()
{
int n,ans=0,y,m,d;
char name[10];
scanf("%d",&n);
bool flag=false;
for(int i=1;i<=n;i++)
{
scanf("%s %d/%d/%d",name,&y,&m,&d);
int time=y*10000+m*100+d;
if(time<18140906||time>20140906) continue;//不合法
//更新年老的人的資訊
if(!flag||time<old.time)
{
strcpy(old.name,name);
old.time=time;
}
//更新年輕的人的資訊
if(!flag||time>young.time)
{
strcpy(young.name,name);
young.time=time;
}
flag=true;//標記old、young中已有合法資訊
ans++;//合法的人的數量加一
}
if(ans==0)
printf("0\n");
else
printf("%d %s %s\n",ans,old.name,young.name);
return 0;
}
相關文章
- 1028 人口普查
- PAT1028 人口普查
- B1028 人口普查 20分
- PAT-B 1026 程式執行時間【時間】
- OJ-1028: I love 閏年!、JavaJava
- MySQL時間戳、時間MySql時間戳
- Linux時間設定系統時間、硬體時間和時間服務Linux
- mysql時間操作(時間差和時間戳和時間字串的互轉)MySql時間戳字串
- 建立時間和保持時間
- 獲取時間戳,幾個時間點的時間戳時間戳
- 時間段時間點自己理解
- C# 時間戳轉時間C#時間戳
- 時間型別和時間戳型別時間戳
- 直播軟體搭建,當前時間、既定時間後的時間及時間比較大小
- 時間
- 美國人口普查局:2020年人口普查資料 白人比例不足60%
- 兩個時間戳的時間差時間戳
- 時間相減和時間轉換
- 時間戳轉化為時間格式時間戳
- PostgreSQL 插入時間與更新時間(qbit)SQL
- Excel中時間戳轉換時間Excel時間戳
- PAT-B 1046 划拳
- 查詢時若時間為空,開始時間取今天的零點,結束時間取當前時間
- pbootcms模板如何呼叫時間 時間格式大全boot
- 時間軸、流程類時間軸繪製
- 時間相差秒數_Golang 時間操作大全Golang
- 【時間戳轉普通時間格式的方法】時間戳
- ubuntu 修改時區或時間 及網路同步時間Ubuntu
- 時間戳與時間字串的多時區轉換時間戳字串
- 乾貨分享| LS1028A 系統固化 操作說明
- JavaScript計算兩個時間點之間的時間差JavaScript
- python中的時間轉換,秒級時間戳轉string,string轉時間Python時間戳
- 時間管理
- 時間embedding
- 時間軸
- c++ 獲取當前時間周初凌晨時間戳(獲取當前時間週一凌晨時間戳)C++時間戳
- PAT-B 1064 朋友數
- 時間函式:與時間相關那些事。。。函式