题目大意:
给出一系列人进入电脑室的记录,第一个进入的开门,最后一个出去的关门,找出这两个人。
输入:
①第一行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;
}
觉得有帮助的小伙伴点个赞吧!!!谢谢!!!