通过自定义函数设计实现对某班期末C语言、计算机网络、数据库三门课程的成绩做统计处理,主要包括:显示每个学生的总分、平均分和每门课程的平均分。
时间: 2023-06-12 16:06:24 浏览: 124
好的,这里给出一个示例代码,具体实现如下:
```c
#include <stdio.h>
#define N 3 // 学生人数
#define M 3 // 课程数目
float getSum(float arr[], int n); // 计算数组元素和
float getAvg(float arr[], int n); // 计算数组元素平均值
int main() {
char name[N][20] = {"张三", "李四", "王五"}; // 学生姓名
float score[N][M] = {{85.5, 90.0, 92.5}, {75.0, 80.0, 85.5}, {92.5, 88.0, 90.0}}; // 学生成绩
float courseSum[M] = {0.0}; // 每门课程的总分
float stuSum[N] = {0.0}; // 每个学生的总分
// 统计每门课程的总分和每个学生的总分
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
courseSum[j] += score[i][j];
stuSum[i] += score[i][j];
}
}
// 显示每个学生的总分、平均分和每门课程的平均分
printf("姓名\tC语言\t计算机网络\t数据库\t总分\t平均分\n");
for (int i = 0; i < N; i++) {
printf("%s\t", name[i]);
for (int j = 0; j < M; j++) {
printf("%.1f\t", score[i][j]);
}
printf("%.1f\t%.1f\n", stuSum[i], stuSum[i] / M);
}
printf("平均分\t");
for (int j = 0; j < M; j++) {
printf("%.1f\t", courseSum[j] / N);
}
printf("\n");
return 0;
}
float getSum(float arr[], int n) {
float sum = 0.0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
return sum;
}
float getAvg(float arr[], int n) {
return getSum(arr, n) / n;
}
```
在上面的代码中,我们使用了一个二维数组 `score` 来存储每个学生的每门课程成绩,使用一维数组 `courseSum` 存储每门课程的总分,使用一维数组 `stuSum` 存储每个学生的总分。
首先,我们使用嵌套的 `for` 循环来计算每门课程的总分和每个学生的总分,然后在外层 `for` 循环中输出每个学生的成绩、总分和平均分,并在最后输出每门课程的平均分。
在上述实现中,我们定义了两个辅助函数 `getSum` 和 `getAvg`,分别用来计算数组元素的和和平均值。这些函数可以在实际使用中进行重用。
阅读全文