题解 | #开门人和关门人#

开门人和关门人

https://www.nowcoder.com/practice/a4b37b53a44d454ab0834e1517983215

运用结构体和string

  1. 构建结构体record,创建一个结构体数组,用于存放m条记录;
  2. 用minin和maxout分别记录开门人的下标和关门人的下标;
  3. 输出下标为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")

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务