二维数组中,输入5个人的3项科目成绩,如何计算并输出每一行每一列的平均分?

春盏77 2015-12-07 11:18:41
#include"stdio.h"
int main(void){
float a[5][5];
int i,j,k;
printf("请输入学生学号和成绩:\n");
for(i=0;i<5;i++){ //循环控制行数。
for(j=0;j<4;j++){ //循环控制列。
scanf("%d",&a[i][j]); //循环输入行和列。
}
for(i=0;i<5;i++){ //循环获取数据。
for(k=1;k<4;k++){ //从第二列循环相加。
a[i][4]+=a[i][k]; //相加结果赋给第4列。
}

a[i][4]/=3; //计算平均值。
a[i][4]=0; //初始化每一行的总分。
}
for(i=0;i<5;i++){ //循环输出
printf("第%d号学生的平均分:%.2f",i+1,a[i][4]);
}
}
}
...全文
3766 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
春盏77 2015-12-08
  • 打赏
  • 举报
回复
我的a[5][5]时表示5个学生,第一列是学号,最后一列是拿来装平均分的。所以才多了2列。 虽然C++我还不是很懂,但是根据你的我还是做出来了。谢谢。
qq20004604 2015-12-08
  • 打赏
  • 举报
回复
本来只想给你写一个输出的,不过你代码看的我好蛋疼…… 帮你全部重写了一遍——用C++的方法,但你应该把cin和cout改成对应的就可以。 主要是看for的写法 // i是行数, j是列数。我这里是C++的格式,你自己改成printf吧,我不会用printf //另外说一句,你的a[5][5]我看的很蛋疼,5人3科你就a[5][3]啊,[3]是一个人的三科成绩,然后[5]是5个人 #include<iostream> using namespace std; int main() { double total; //total用来计算总分的,除以列数就是该行的平均分,除行数就是该列的平均分 int i, j; //先初始化行和列 double a[5][3]; //以下是输入成绩的部分 for (i = 0;i<5;i++) //注意,5个人,就小于5。下面的3科,就小于3,不是小于4,因为是0~4和0~2 { cout << "现在轮到输入第" << i + 1 << "个人的成绩了" << endl; //换人的时候,提示 for (j = 0;j < 3;j++) { cout << "***输入他的第" << j + 1 << "科成绩:"; cin >> a[i][j]; } cout << endl; //换人的时候,换一行,看起来更清晰 } //以下是计算平均分的部分,这是计算每个人的 cout << "以下开始计算每个人的平均分:" << endl; for (i = 0;i < 5;i++) { total = 0; //每次换行的时候,总分清0,避免数据干扰 for (j = 0;j < 3;j++) { total = total + a[i][j]; //初始为0,每次都加当前的分数 } cout << "第" << i + 1 << "个人的 " << j << " 科平均分是" << total / j << endl << endl; } //以下是计算每一科的 for (j = 0;j < 3;j++) { total = 0; //每次换行的时候,总分清0,避免数据干扰 for (i = 0;i < 5;i++) { total = total + a[i][j]; //初始为0,每次都加当前的分数 } cout << "第" << j+1 << "科的 " << i << " 个人平均分是" << total / i << endl << endl; } system("Pause"); return 0; }

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧