合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
一、题目描述 ⭐️
习题8-10 输出学生成绩
本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。
输入格式: ❀
输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。
输出格式: ❀
按照以下格式输出:
average = 平均成绩
max = 最高成绩
min = 最低成绩
结果均保留两位小数。
输入样例: ❀
3
85 90 95
输出样例: ❀
average = 90.00
max = 95.00
min = 85.00
二、代码(C语言)⭐️
#include <stdio.h> // 包含标准输入输出库,用于使用输入输出函数(如 scanf 和 printf)
int main() {
int n; // 定义变量 n,用于存储学生的个数
scanf("%d", &n); // 输入学生的个数 n
int numArr[n]; // 定义数组 numArr,用于存储每个学生的分数
for (int i = 0; i < n; i++) { // 循环 n 次,读取每个学生的分数
scanf("%d", &numArr[i]); // 输入第 i 个学生的分数
}
// 定义变量 sum(总分)、average(平均分)、max(最高分)、min(最低分)
double sum = 0.0, // 总分,初始化为 0.0
average = 0.0, // 平均分,初始化为 0.0
max = numArr[0], // 最高分,初始化为第一个学生的分数
min = numArr[0]; // 最低分,初始化为第一个学生的分数
// 计算总分、最高分和最低分
for (int i = 0; i < n; i++) { // 循环 n 次,遍历每个学生的分数
sum += numArr[i]; // 将当前学生的分数加到总分中
if (numArr[i] > max) max = numArr[i]; // 如果当前分数大于最高分,则更新最高分
if (numArr[i] < min) min = numArr[i]; // 如果当前分数小于最低分,则更新最低分
}
average = sum / (n * 1.0); // 计算平均分,n * 1.0 将 n 转换为浮点数
// 输出结果
printf("average = %.2f\n", average); // 输出平均分,保留两位小数
printf("max = %.2f\n", max); // 输出最高分,保留两位小数
printf("min = %.2f", min); // 输出最低分,保留两位小数
return 0; // 程序正常结束
}