题目要求:
定义一个二维数组保存 10个学生的5门课成绩,分别用函数实现:
(1)input():输入每个学生的成绩;
(2)output():输出每个学生的成绩;
(3)aver_stu():计算并输出每个学生的平均分;
(4)aver_cour():计算并输出每门课的平均分;
(5)highest():找出最高分数所对应的学生和课程。
程序运行时要求先在屏幕显示菜单,输入选择后分别调用对应的函数完成所选操作。
程序源码:
#include <stdio.h> int array[10][5]; void input(void); void output(void); void aver_stu(void); void aver_cour(void); void highest(void); int main(void) { int n; input(); printf("请输入您要执行的选项:\n\ 1.输出每个学生的成绩;\n 2.输出每个学生的平均分:\n 3.输出每门课程的平均分:\n 4.找出最高分数所对应的的学生和课程\n"); scanf("%d", &n); switch(n) { case 1: output(); break; case 2: aver_stu(); break; case 3: aver_cour(); break; case 4: highest(); break; } return 0; } void input(void) { int i, j; for(i = 0; i < 10; i++) { printf("请输入学生%d的成绩:", i + 1); for(j = 0; j < 5; j++) { scanf("%d", &array[i][j]); } } } void output(void) { int i, j; for(i = 0; i < 10; i++) { for(j = 0; j < 5; j++) { printf("%d ", array[i][j]); } printf("\n"); } } void aver_stu(void) { int sum[10] = { 0 }; double aver[10]; int i, j; for(i = 0; i < 10; i++) { for(j = 0; j < 5; j++) { sum[i] += array[i][j]; } aver[i] = sum[i] / 5; printf("学生%d的平均分为:%lf\n", i, aver[i]); } } void aver_cour(void) { int i, j; int sum[5]; double aver[5]; for(j = 0; j < 5; j++) { for(i = 0; i < 10; i++) { sum[j] += array[i][j]; } aver[j] = sum[j] / 10; printf("课程%d的平均分为:%lf\n", j, aver[j]); } } void highest(void) { int i, j; int ii, jj; int max = array[0][0]; for(i = 0; i < 10; i++) { for(j = 0; j < 5; j++) { if(max < array[i][j]) { max = array[i][j]; ii = i; jj = j; } } } printf("学生%d的课程%d得分最高,最高分为%d\n", ii, jj, max); }
时间: 2024-10-27 04:44:39