- 输入4个学生5门课的成绩,分别用函数实现下列功能:
(1)计算每个学生的平均分;
(2)计算每门课的平均分;
(3)找出所有20个分数中最高的分数所对应的学生和课程。
我是打算自学C语言,在网上找了道题但是没找到答案,能不能写一个标准答案给我看看
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 云云豆酱 2022-11-02 18:21关注
文章链接 http://t.csdn.cn/iZVFd
代码如下:他写的很好,你可以看看,你的没有计算方差他写了,把计算方差的函数去掉就行了。希望对你有用
#include<stdio.h>
void st_avger(int s[5][4])//计算每个学生的平均分
{
int a,b,c123;
float s1[5],t=0;
for(a=0;a<5;a++)
{
for(b=0;b<4;b++)
{
t=t+s[a][b];
}
s1[a]=t;
t=0;
}
for(c123=0;c123<5;c123++)
printf("第%d个学生的平均成绩为%4.2f\n",c123,s1[c123]/4);
}
void sb_avger(int s[5][4])//计算每门课的平均分
{
int a,b;
float t=0;
for(a=0;a<4;a++)
{
for(b=0;b<5;b++)
t+=s[b][a];
printf("第%d门课的平均成绩为%4.2f\n",a+1,t/5);
t=0;
}
}
void max(int s[5][4])
{
int a3,b3,c3,t3,e3,f3,s3[20],s31[20];
for(a3=0;a3<5;a3++)
{
for(b3=0;b3<4;b3++)
s3[a3*4+b3]=s[a3][b3];//将二维数组降为一维数组
}
for(e3=0;e3<20;e3++)
s31[e3]=s3[e3];//复制一个1维数组,方便找出最大的数字是否重复
for(c3=0;c3<19;c3++)//找出数组最大的数字
if(s3[c3]>=s3[c3+1])
{
t3=s3[c3+1];
s3[c3+1]=s3[c3];
s3[c3]=t3;
}
for(f3=0;f3<20;f3++)//找出最大数字在数组中是否重复,并输出重复的位置
{
if(s31[f3]==s3[19])
printf("第%d个同学第%d门课分数最高,为%d\n",f3/4+1,f3%4+1,s31[f3]);/在一维数组里
每个同学占用四个位,所以很容易确定那个同学,成绩亦然/
}
}
void msv(int s[5][4])//计算平均分方差
{
int a,b,c;
float apex,xi2=0,xi=0,t=0,s1[5];
for(a=0;a<5;a++)//计算每一个同学成绩的平均值
{
for(b=0;b<4;b++)
t=t+s[a][b];//t储存每一个同学的总成绩
s1[a]=t/4;
t=0;
}
for(c=0;c<5;c++)
{
xi2+=s1[c]s1[c];
xi+=s1[c];
}
apex=(xi2)/5-(xi/5)(xi/5);//方差计算公式
printf("平均分方差:%f\n",apex);
}
int main ()
{
int s[5][4];
int a1,b1;
for(a1=0;a1<5;a1++)
for(b1=0;b1<4;b1++)
{
printf("输入第%d名同学的第%d门课的分数:",a1+1,b1+1);
scanf("%d",&s[a1][b1]);
}
st_avger(s);
sb_avger(s);
msv(s);
max(s);
return 0;
}本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 做个有关计算的小程序
- ¥15 MPI读取tif文件无法正常给各进程分配路径
- ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
- ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
- ¥15 setInterval 页面闪烁,怎么解决
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化