1. 程式人生 > >C++ 定義學生資訊結構體,按照學號順序排序

C++ 定義學生資訊結構體,按照學號順序排序

定義學生資訊結構體,錄入學生資訊,根據學生的學號順序進行排序。
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; } } } }

程式結果測試成功,可直接執行。