洛谷P1051 谁拿了最多奖学金结构体(struct)解法

洛谷P1051 谁拿了最多奖学金结构体(struct)解法

洛谷P1051 谁拿了最多奖学金

#include <iostream>
#include <string>
using namespace std;
int n,max_money = 0,max_money_i = 0,z = 0;
struct student{
    
    
	string name;//string更方便一些
	int end_score,class_score,article,money;
	char cadre,west;//字符不需要string,用char就行了
}; 
student a[1000];
int main(){
    
    
	cin >> n;
	for(int i = 0;i < n;i++){
    
    
		cin >> a[i].name >> a[i].end_score >> a[i].class_score >> a[i].cadre >> a[i].west >> a[i].article;//全部输入
		if(a[i].article >= 1 && a[i].end_score > 80)a[i].money += 8000; //院士奖学金8000元
		if(a[i].end_score > 85 && a[i].class_score > 80)a[i].money += 4000; //五四奖学金4000元
		if a[i].end_score > 90)a[i].money += 2000; //成人优秀奖2000元 
	    if(a[i].end_score > 85 && a[i].west == 'Y')a[i].money += 1000; //西部奖学金1000元
		if(a[i].class_score > 80 && a[i].cadre == 'Y')a[i].money += 850;//班级贡献奖850元
		z += a[i].money;//总分
		if(a[i].money > max_money){
    
    //计算最大值
			max_money = a[i].money;
			max_money_i = i;
		}
	}
	cout << a[max_money_i].name << endl << a[max_money_i].money << endl << z;//全部输出
	return 0;
}

猜你喜欢

转载自blog.csdn.net/MRH0420/article/details/110136547