概述
- 单纯只用多个数组管理学生成绩信息,不使用结构体,该程序最主要的难点是依据学号或总成绩对学生信息进行排序,借助了临时数组来标记排好序的下标。
- 运行结果如下:
输入数据:
打印数据:
根据学号对信息进行排序:
根据总成绩对信息进行排序:
根据学号删除某一信息:

代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT 30
void student_scanf(int n);
void student_printf(int n);
int student_find_name(int n);
int student_find_num(int n);
void student_sort_num(int n);
void student_sort_sum(int n);
int student_alter_num(int n);
int student_alter_name(int n);
int student_delete_num(int n);
int student_delete_name(int n);
char names[MAX_STUDENT][50];
int math[MAX_STUDENT];
int english[MAX_STUDENT];
int computer[MAX_STUDENT];
int sum[MAX_STUDENT];
int num[MAX_STUDENT];
int temp_num[MAX_STUDENT];
char temp_names[MAX_STUDENT][50];
int temp_math[MAX_STUDENT];
int temp_english[MAX_STUDENT];
int temp_computer[MAX_STUDENT];
int temp_sum[MAX_STUDENT];
int sort[MAX_STUDENT];
int i, j;
int main(void)
{
int choice,n;
while (1)
{
printf("*************************************\n");
printf("欢迎使用学生成绩管理系统\n");
printf("[1] 输入所有学生信息\n");
printf("[2] 输出所有学生成绩\n");
printf("[3] 按学号查找某个学生信息\n");
printf("[4] 按姓名查找某个学生信息\n");
printf("[5] 按学号对学生排序\n");
printf("[6] 按总成绩对学生排序\n");
printf("[7] 按学号修改某个学生信息\n");
printf("[8] 按姓名修改某个学生信息\n");
printf("[9] 按学号删除某个学生信息\n");
printf("[10] 按姓名删除某个学生信息\n");
printf("[0] 退出程序\n");
printf("请输入您的选择(0 - 9):");
scanf(