数据结构-3

【深基7.例11】评等级

题目描述

现有 \(N(N\le 1000)\) 名同学,每名同学需要设计一个结构体记录以下信息:学号(不超过 100000 的正整数)、学业成绩和素质拓展成绩(分别是 0 到 100 的整数)、综合分数(实数)。每行读入同学的姓名、学业成绩和素质拓展成绩,并且计算综合分数(分别按照 70% 和 30% 权重累加),存入结构体中。还需要在结构体中定义一个成员函数,返回该结构体对象的学业成绩和素质拓展成绩的总分。

然后需要设计一个函数,其参数是一个学生结构体对象,判断该学生是否“优秀”。优秀的定义是学业和素质拓展成绩总分大于 \(140\) 分,且综合分数不小于 \(80\) 分。

当然通过本题很容易啦,本题只是为了帮助你训练结构体的使用方法。

输入格式

第一行一个整数 N。

接下来 N 行,每行 3 个整数,依次代表学号、学业成绩和素质拓展成绩。

输出格式

N 行,如果第 i 名学生是优秀的,输出 Excellent,否则输出 Not excellent

输入输出样例

样例输入1

4
1223 95 59
1224 50 7
1473 32 45
1556 86 99

样例输出1

Excellent
Not excellent
Not excellent
Excellent

说明/提示

#include <bits/stdc++.h>

using namespace std;

typedef long long LL;
const int N = 2e4+10;
typedef pair<int,int> PII;
int n,m,l,cnt;
int a[N];
LL res = 1;

unordered_map<int,int> h;

pair<int,string> hh[N];

int f[1100][1100];

struct Node 
{
	int xuehao,xueye,suzhikuozhan;
	double zonghe;
	
	void fen(int xueye, int suzhikuozhan) 
	{
		zonghe =  0.70 *xueye + 0.30 * suzhikuozhan; 
	}
	
}tr[N];

bool compare( Node& a )//const
{
	a.fen(a.xueye,a.suzhikuozhan);
	//double tt = a.fen();
	if(a.xueye + a.suzhikuozhan > 140 && a.zonghe >= 80.0 )	return true;
	return false;
}

int main()
{
	cin >> n ;	

	for(int i = 1; i <= n  ; i++)	
	{
		int s ; cin >> s ; 

		int x,y;	cin >> x >> y ;	//res = x + y + z;
		tr[i] = {s,x,y};
		if(compare(tr[i]))	puts("Excellent");
		else puts("Not excellent");
	}
	
	return 0;
		
}

posted @ 2022-03-02 01:50  HarySeldon  阅读(135)  评论(0)    收藏  举报