文章目录
- C语言编程:学生成绩管理系统
- 一、程序概述
- 二、代码实现
- 三、程序解释
C语言编程:学生成绩管理系统
在这篇文章中,我们将一起探讨如何使用C语言来创建一个简单的学生成绩管理系统。这个系统将允许用户输入学生数量、学号和成绩,然后对学生的成绩进行排序,并输出平均分、平均分以下的学生学号以及60分以上的学生的学号和成绩。
一、程序概述
这个程序分为几个主要部分:
- 输入学生数量和对应的学号与成绩。
- 使用冒泡排序算法对学生成绩进行排序。
- 计算并输出平均分。
- 输出排序后的学生学号和成绩。
- 输出平均分以下的学生学号。
- 输出60分以上的学生的学号和成绩。
二、代码实现
以下是实现这个系统的C语言代码:
#include <stdio.h>int main() {int n;printf("请输入学生数量 n:\n");scanf("%d", &n);int scores[n];int numbers[n];for (int i = 0; i < n; i++) {printf("输入学号和成绩:\n");scanf("%d", &numbers[i]);scanf("%d", &scores[i]);}// 使用冒泡排序算法对学生成绩进行排序for (int i = 0; i < n; i++) {for (int j = 0; j < n - 1; j++) {if (scores[j] > scores[j + 1]) {// 成绩交换int temp_score = scores[j];scores[j] = scores[j + 1];scores[j + 1] = temp_score;// 学号交换int temp_number = numbers[j];numbers[j] = numbers[j + 1];numbers[j + 1] = temp_number;}}}// 计算平均分int sum = 0;for (int i = 0; i < n; i++) {sum += scores[i];}float average = sum * 1.0 / n;printf("平均分是:%.2f\n", average);// 输出排序后的学生学号和成绩printf("按成绩排序后的学生学号和成绩:\n");for (int i = 0; i < n; i++) {printf("学号:%d 成绩:%d\n", numbers[i], scores[i]);}// 输出平均分以下学生的学号printf("平均分以下的学生学号:\n");for (int i = 0; i < n; i++) {if (scores[i] < average) {printf("%d ", numbers[i]);}}printf("\n");// 输出60分以上的学生的学号和成绩printf("60分以上的学生的学号和成绩:\n");for (int i = 0; i < n; i++) {if (scores[i] > 60) {printf("学号:%d 成绩:%d\n", numbers[i], scores[i]);}}return 0;
}
三、程序解释
-
输入学生信息:首先,程序提示用户输入学生的数量,然后循环接收每个学生的学号和成绩。
-
排序算法:使用冒泡排序算法对成绩进行排序。冒泡排序的基本思想是重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
-
计算平均分:通过累加所有学生的成绩并除以学生数量来计算平均分。
-
输出结果:程序输出排序后的学生学号和成绩,平均分以下的学生学号,以及60分以上的学生的学号和成绩。