码迷,mamicode.com
首页 > 其他好文 > 详细

NYOJ_60 谁获得了最高奖学金

时间:2015-06-01 22:45:59      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:编程   c++   nyoj   结构体   

题目地址

分析:

本题采用结构体的形式比较容易想到。
上次使用结构体还是大一上考完C语言的时候,想想惭愧!平时编程还是太少!

心得:

做完不看推荐代码等于白做!
判断输入是否为真  bool istrue= str ==“Y”;
姓名:直接用 string 定义,不需要用字符数组。

代码:

#include<iostream>
#include<string.h>
using namespace std;
struct Student
{
	char *name ;
	float finalExamScore ;
	float classJudgeScore ;
	char isClassLeader ;
	char isWestern  ;
	int paperNum ;
	float bouns ;
};

void countBonus(Student &p) //加引用 
{
	if(p.finalExamScore >80 && p.paperNum >= 1) p.bouns+=8000;
	if(p.finalExamScore>85 && p.classJudgeScore >80) p.bouns+= 4000;
	if(p.finalExamScore >90 ) p.bouns += 2000;
//	if(strcmp("Y",p.isWestern)==0 && p.finalExamScore >85) p.bouns+=1000;
//	if(strcmp("Y",p.isClassLeader)==0 &&p.classJudgeScore >80) p.bouns+= 850;
	if('Y'==p.isWestern && p.finalExamScore >85) p.bouns+=1000;
	if('Y'==p.isClassLeader &&p.classJudgeScore >80) p.bouns+= 850;
}

void SelectSort(Student *p ,int n)
{
	int i,j,min;
	Student temp;
	for(int i=0;i<n;i++) //n-1次 
	{
		min = i;
		for(j=i+1;j<n;j++)
		{
			if(p[min].bouns>= p[j].bouns)  //稳定的 如果 a 先进 则 a靠后(大) 
				min = j;
		}
		if(min != i)
		{
			temp = p[i];
			p[i] = p[min];
			p[min] = temp;
		}
		
	} 
}
int main()
{
	int n;
	cin>>n;
	while(n--)
	{
		int num;
		float bouns=0;
		cin>>num;
		Student stu[num]; //结构数组
		for(int i=0;i<num;i++)
		{
			stu[i].name = new char[20];
		//	stu[i].isClassLeader = new char [3];
		//	stu[i].isWestern = new char [3];
			cin>>stu[i].name>>stu[i].finalExamScore>>stu[i].classJudgeScore>>stu[i].isClassLeader>>stu[i].isWestern>>stu[i].paperNum;
			stu[i].bouns = 0;
			countBonus(stu[i]);
		}
		SelectSort(stu,num); //从小到大排序 
		for(int i=0;i<num;i++)
		{
			bouns += stu[i].bouns;
		}
		cout<<stu[num-1].name<<" "<<endl;
		cout<<stu[num-1].bouns<<" "<<endl;
		cout<<bouns<<endl;
	}
	return 0;
}


官方优秀代码:

技术分享

NYOJ_60 谁获得了最高奖学金

标签:编程   c++   nyoj   结构体   

原文地址:http://blog.csdn.net/think_ycx/article/details/46315113

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!