输入10个学生5门课的成绩,分别用函数实现下列功能:
① 计算每个学生的平均分;
② 计算每门课的平均分;
③ 找出所有 50个分数中最高的分数所对应的学生和课程;
④计算平均分方差:
1.程序:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<string.h>
float average[10];
int main()
{
void stu_average(float arr[][5]);
void course_average(float arr[][5]);
void search(float arr[][5]);
void fangcha(float arr[][5]);
float arr[10][5];
int i, j;
for (i = 0; i < 10; i++)
{
for (j = 0; j < 5; j++)
{
scanf("%f", &arr[i][j]);
}
}
stu_average(arr);
course_average(arr);
search(arr);
fangcha(arr);
}
void stu_average(float arr[][5])
{
int i, j;
float sum;
for (i = 0; i < 10; i++)
{
sum = 0;
for (j = 0; j < 5; j++)
{
sum += arr[i][j];
}
average[i] = sum / 5;
printf("第%d个学生平均分为%f\n", i + 1, sum / 5);
}
}
void course_average(float arr[][5])
{
int i, j;
float sum;
for (i = 0; i < 5; i++)
{
sum = 0;
for (j = 0; j < 10; j++)
{
sum += arr[j][i];
}
printf("第%d门课学生平均分为%f\n", i + 1, sum / 10);
}
}
void search(float arr[][5])
{
int i, j;
float h = arr[0][0];
int hi = 0, hj = 0;
for (i = 0; i < 10; i++)
{
for (j = 0; j < 5; j++)
{
if (arr[i][j] > h)
{
h = arr[i][j];
hi = i + 1;
hj = j + 1;
}
}
}
printf("最高分为%f,是第%d个学生,第%d门课\n", h, hi, hj);
}
void fangcha(float arr[][5])
{
float xi2 = 0, xi = 0, result;
int i, j;
for (i = 0; i < 10; i++)
{
xi2 += average[i] * average[i];
xi += average[i];
}
result = xi2 / 10 - (xi / 10) * (xi / 10);
printf("方差为%f\n", result);
}
2.输入:
87 88 92 67 78
88 86 87 98 90
76 75 65 65 78
67 87 60 90 67
77 78 85 64 56
76 89 94 65 76
78 75 64 67 77
77 76 56 87 85
84 67 78 76 89
86 75 64 69 90
3.输出:
第1个学生平均分为82.40
第2个学生平均分为89.80
第3个学生平均分为71.80
第4个学生平均分为74.20
第5个学生平均分为72.00
第6个学生平均分为80.00
第7个学生平均分为72.20
第8个学生平均分为76.20
第9个学生平均分为78.80
第10个学生平均分为76.80
第1门课学生平均分为79.60
第2门课学生平均分为79.60
第3门课学生平均分为74.50
第4门课学生平均分为74.80
第5门课学生平均分为78.60
最高分为98.00,是第2个学生,第4门课
方差为28.71