题解 | #开门人和关门人#
开门人和关门人
https://www.nowcoder.com/practice/a4b37b53a44d454ab0834e1517983215
运用结构体和string
- 构建结构体record,创建一个结构体数组,用于存放m条记录;
- 用minin和maxout分别记录开门人的下标和关门人的下标;
- 输出下标为minin和maxout的工号即可。
#include <iostream> using namespace std; #include<algorithm> #include<string> struct record{ string num; string in; string out; }; int main() { int m; //条目数 cin>>m; struct record str[m]; //创建结构体数组 //输入记录 for (int i = 0; i < m; i++){ cin >> str[i].num >> str[i].in >> str[i].out; //cout<<str[i].num<<" "<<str[i].in<<" "<<str[i].out<<endl; } int minin = 0; //记录最早上班的人的下标,初始化为0 int maxout = 0; //记录最晚下班的人的下标,初始化为0 //遍历结构体数组,找到minin和maxout for (int i = 1; i < m; i++){ if (str[minin].in > str[i].in){ minin = i; } if (str[maxout].out < str[i].out){ maxout = i; } } //输出 cout<<str[minin].num<<" "; cout<<str[maxout].num<<endl; } // 64 位输出请用 printf("%lld")