结构体:成绩排序

结构体:成绩排序_第1张图片

#include
using namespace std;
struct Student   //创建结构体Student
{
	int number;  //学号
	char name[25];  //姓名
	float score;  //分数
};
void input(Student *stu, int n)  //输入函数
{
	//结构体(Student)类型的指针变量p,先存储成员stu的首地址,指向第一个成员
	//输入第一个成员的信息后,向后移动,指向下一个成员
	for (Student *p=stu;p> p->number >> p->name >>p->score; 
	}
}
void sort(Student *stu, int n) //排序函数(选择排序法)
{
	//需要比较n-1轮,每轮筛选出最高分的成员排在最前面,以此类推
	//已筛选出的排好序的,不需要进行下一轮
	for (Student *p=stu;pscore >pmax->score)
				pmax=q;
		//第一个成员和第二个成员比较分数,若分数相同,第二个成员学号小,指针变量pmax指向第二个成员
			else if ((q->score == pmax->score)&& (q->number < pmax->number))
					pmax = q;
		}
		//成员进行交换位置,即所有信息均需要交换位置
		Student t = *pmax; *pmax = *p; *p = t; 
	}
}
void output(Student *stu, int n)  //输出函数
{
	//结构体(Student)类型的指针变量p,先存储成员stu的首地址,指向第一个成员
	//输出第一个成员的信息后,向后移动,指向下一个成员
	for (Student* p = stu; p < stu + n; p++)
	{
		cout<< p->name<> n;
	Student *stu=new Student[n]; //开辟存储空间
	input(stu, n);  //调用输入函数
	sort(stu, n);   //调用排序函数
	output(stu,n);  //调用输出函数
}

结构体:成绩排序_第2张图片

你可能感兴趣的:(算法)