/*输入10个学生5门课的成绩,分别用函数实现下列功能:
1、计算每个学生的平均分
2、计算每门课的平均分
3、找出没所有50个分数中最高的分数所对应的学生和课程
4、计算平均分方差*/
#include<stdio.h>
#define M 10
#define N 5
float aveg[N],avg_cou[M];
float score[M][N];
char course[P][Q];
int main(){
void average(void); //函数声明
void input(void);
void average_course(void);
void MaxScore(void);
float s_var(void);
input(); //函数调用,输入成绩
average(); //函数调用 求出平均分
average_course();
//打印出输入的成绩
printf("\n NO.\t 物理\t 化学\t 政治\t 生物\t 语文\t 平均分\n");
for(int i=0;i<M;i++){
printf("\nNO%2d\t",i+1);
for(int j=0;j<N;j++){
printf("%8.2f\t",score[i][j]);
}
printf("%8.2f",aveg[i]); //每个学生的平均分
printf("\n");
}
//输出每门课的平均成绩
printf("\n平均分:\t");
for(int i=0;i<N;i++){
printf("%8.2f\t",avg_cou[i]);
}
printf("\n");
MaxScore();
printf("\n");
printf("平均分方差为:%8.2f\t",s_var());
printf("\t");
return 0;
}
//输入成绩
void input(){
for(int i=0;i<M;i++){
printf("请输入第%d位学生的成绩:\n",i+1);
for(int j=0;j<N;j++){
scanf("%f",&score[i][j]);
}
}
}
//求每个学生的平均分
void average(){
float sum;
for(int i=0;i<M;i++){
sum=0;
for(int j=0;j<N;j++){
sum+=score[i][j];
}
aveg[i]=sum/N; //求出每个学生的平均分,存储在一维数组中
}
}
//计算每门课的平均分
void average_course(){
float sum;
for(int i=0;i<N;i++){
sum=0;
for(int j=0;j<M;j++){
sum+=score[j][i];
}
avg_cou[i]=sum/M; //求出每门课程的平均成绩
}
}
//50个分数中最高的分数所对应的学生和课程
void MaxScore(){
float max=score[0][0];
int m=0,n=0;
for(int i=0;i<M;i++){
for(int j=0;j<N;j++){
if(max<=score[i][j]){
max=score[i][j];
m=i;
n=j;
}
}
}
printf("\n最高分是%8.2f,是学号为NO.%d学生,课程是:",score[m][n],m+1);
switch(n+1){
case 1:
printf("物理");break;
case 2:
printf("化学");break;
case 3:
printf("政治");break;
case 4:
printf("生物");break;
case 5:
printf("语文");break;
}
}
//计算平均分方差
float s_var(void){
int i;
float sumx,sumxn;
sumx=0.0;
sumxn=0.0;
for(i=0;i<N;i++){
sumx+=aveg[i]*aveg[i];
sumxn+=aveg[i];
}
return (sumx/N-(sumxn/N)*(sumxn/N)); //方差公式
}
函数的应用
最新推荐文章于 2026-01-03 02:32:32 发布
本文深入探讨了函数在C++、C和MATLAB三种编程语言中的应用,阐述了它们在软件开发中的核心作用,包括代码复用、模块化设计和算法实现。通过实例分析,展示了如何利用函数提升程序效率和可维护性。
1049

被折叠的 条评论
为什么被折叠?



