定义学生信息结构体,录入学生信息,根据学生的学号顺序进行排序。
struct student 定义学生信息,学生信息中Score sc 为一个结构体类型的变量,存放学生的成绩信息;
input(),disp()函数输入输出学生信息;sort()通过学号的大小进行排序;程序中运用了选择法排序;若想对其他信息排序均可以类似的方法进行。
#include<iostream>
using namespace std;
struct Score //存成绩
{
int math;
int English;
int computer;
};
struct student
{
int num;
char name[10];
Score sc;
};
void input(student *stu, int n);
void disp(student *p, int n);
void sort(student *sarr, int n);
int main()
{
student stu[4];
input(stu, 4);
sort(stu, 4);
disp(stu, 4);
return 0;
}
void input(student *stu, int n)
{
cout << "input the student's imformations:" << endl;
for (int i = 0; i < n; i++)
{
cin >> stu[i].num >> stu[i].name >> stu[i].sc.math >> stu[i].sc.English >> stu[i].sc.computer;
}
}
void disp(student *stu, int n)
{
cout << "output the student's informations" << endl;
for (int i = 0; i < n;i++)
{
cout << stu[i].num << ' ' << stu[i].name << ' ' << stu[i].sc.math << ' '
<< stu[i].sc.English << ' ' << stu[i].sc.computer << ' ' << endl;
}
}
void sort(student *stu, int n)
{
int k;
student tmp; //student类型的tmp变量
for (int i = 0; i < n;i++)
{
k = i;
for (int j = i + 1; j < n; j++)
{
if (stu[j].num<stu[i].num)
{
k = j;
}
if (k != i)
{
tmp = stu[k];
stu[k] = stu[i];
stu[i] = tmp;
}
}
}
}
程序结果测试成功,可直接运行。