PTA刷題Advanced甲級——1006.Sign in and Sign out——Day(2)

問題描述

在這裏插入圖片描述題目翻譯:
每個人進出機房都需要打卡,記錄自己的進入時間和離開時間。我們需要找出最早進入時間同學的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√

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章