問題描述
題目翻譯:
每個人進出機房都需要打卡,記錄自己的進入時間和離開時間。我們需要找出最早進入時間同學的id編號和最晚離開同學的id編號。
題目分析
這道題主要是考察字符串的函數知識,既然是找最早進入和最晚離開,我們就可以邊輸入邊比較,最早進入時間firsttime初始化爲23:59:59,最晚離開時間latetime初始化爲00:00:00。
字符串比較函數爲strcmp(s1,s2),如果s1<s2,則strcmp返回-1,如果相等返回0,否則返回1。
strcpy(s1,s2)是將字符串s2複製字符串s1。
如果進入時間<firsttime,則用進入時間更新firsttime,如果離開時間>latetime,則用離開時間更新latetime,用strcmp函數都可以比較出兩個數字型字符串的大小。最後取出兩個編號輸出即可。
代碼
#include<cstdio>
#include<cstring>
using namespace std;
char firstper[20];
char lastper[20];
char firsttime[20]="23:59:59";
char lasttime[20]="00:00:00";
int main()
{
int n;
scanf("%d",&n);
char id[20],in[20],out[20];
while(n--)
{
scanf("%s%s%s",id,in,out);
//邊輸入邊查找最早進入教室的
if(strcmp(in,firsttime)<0)
{
strcpy(firsttime,in);
strcpy(firstper,id);
}
//邊輸入邊比較查找最晚進入教室的
if(strcmp(out,lasttime)>0)
{
strcpy(lasttime,out);
strcpy(lastper,id);
}
}
printf("%s %s",firstper,lastper);
}
答題用時9min
Q6——finish√