PAT甲级题目1006 Sign In and Sign Out

题目大意:
给出一系列人进入电脑室的记录,第一个进入的开门,最后一个出去的关门,找出这两个人。

输入:
①第一行M:记录的数量
②剩下M行记录,格式:ID_number Sign_in_time Sign_out_time
**ID_number:**人员编号,长度不超过十五的字符串
Sign_in_time Sign_out_time:进入,离开时间格式:HH:MM:SS

输出:
输出这两个人的编号

思路:
先用两个字符数组mint[15]和maxt[15]记录最小时间(mint)和最大时间(maxt),两个字符数组firpernum[20]和lapernum[20]记录这两个人的编号,每读入一条记录就比较,更新最小时间,最大时间,这两个人的编号。c语言中strcmp(str1,str2)**函数便于比较。

代码:

#include
#include
using namespace std;
int main()
{
    char maxt[15]="00:00:00";
    char mint[15]="23.59.59";
    char firpernum[20],lapernum[20];
    int n;
    char tempnum[20],tempin[15],tempout[15];
    scanf("%d",&n);
    while(n--)
    {
        scanf("%s %s %s",tempnum,tempin,tempout);
        if(strcmp(tempin,mint)<0)
        {
            strcpy(mint,tempin);
            strcpy(firpernum,tempnum);
        }
        if(strcmp(tempout,maxt)>0)
        {
            strcpy(maxt,tempout);
            strcpy(lapernum,tempnum);
        }
    }
    printf("%s %s",firpernum,lapernum);
    return 0;
}

觉得有帮助的小伙伴点个赞吧!!!谢谢!!!

你可能感兴趣的:(PAT甲级题目,数据结构,算法,PAT,真题)