ガールズVS A1036ボーイズ(25分)

ガールズVS 1036ボーイズ(25分)

今度は、すべての男子学生の最低グレードと女子学生、すべての最高グレードの違いを教えて求められます。

入力仕様:

各入力ファイルには、1つのテストケースが含まれています。各ケースは、学生情報のNライン続く正の整数Nを含有します。各行には名前とIDはスペースを入れずに10文字以内の文字列であるスペースで区切られ、性別がF(メス)またはM(オス)のいずれかで、グレードがあり、学生の名前、性別、IDやグレードが含まれています0と100の間の整数は、すべてのグレードが明瞭であることが保証されます。

出力仕様:

各テストケースのために、3行に出力されます。最初の行は、最高級と女子学生の名前やIDを与え、2行目は、最も低いグレードと男子生徒のことを示します。三行目は、差分グレード与え
代わりに3行目のFグレードのMは学生の1ような種類が存在しない場合は、対応する行の出力不在、および出力NAを。

サンプル入力1:

3
ジョー・M Math990112 89
マイクM CS991301 100
メアリーF EE990830 95

サンプル出力1:

メアリーEE990830
ジョーMath990112
6

サンプル入力2:

1
ジャン・M AA980920 60

出力例2:

不在
ジャンAA980920
NA

ソリューション:

  • 最大の女性の得点を探します。そして、最小の男性得点。そして形式で出力。
#include <string>
#include <iostream>
using namespace std;
struct People{
	string name;
	string couse;
	int grade;
}temp,female,male;
int main(){
	int n;
	cin >> n;
	female.name="";female.grade=0;
	male.name="";male.grade=101;
	string sex;
	while(n--!=0){
		cin>>temp.name >> sex >> temp.couse >>temp.grade;
		if(sex=="M"&&temp.grade<male.grade){
			male.name=temp.name;
			male.couse=temp.couse;
			male.grade=temp.grade;
		}else if(sex=="F"&&temp.grade>female.grade){
			female.name=temp.name;
			female.couse=temp.couse;
			female.grade=temp.grade;
		}
	}
	if(female.name==""){
		cout << "Absent" <<endl;
	}else cout << female.name <<" " <<female.couse <<endl;
	if(male.name==""){
		cout << "Absent" <<endl;
	}else cout <<male.name <<" "<< male.couse << endl;
	
	if(female.name==""||male.name==""){
		cout << "NA" ; 
	}else cout << female.grade-male.grade; 
	return 0;	
}
公開された91元の記事 ウォンの賞賛9 ビュー10000 +

おすすめ

転載: blog.csdn.net/WeDon_t/article/details/105300891