求C语言程序:创建二维数组 输入5个学生的四门课成绩 编程计算每个学生的总分和每门课的平均分~~谢谢

最好是用函数的方法解答多种方法... 最好是用函数的方法解答 多种方法 展开
 我来答
李幕8
2012-06-03 · 超过10用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:24.7万
展开全部
类似的回答:
#include <stdio.h>
#define M 5
#define N 4

int sumStu(int a[][N],int n) //每个同学的总成绩
{
int sum=0,i;
for(i=0;i<N;i++)
sum+=a[n][i];
return sum;
}

int sumSco(int a[][N],int n) //每门课的总成绩,后求平均分
{
int sum=0,i;
for(i=0;i<M;i++)
sum+=a[i][n];
return sum;
}

void sort(int sum[M]) //冒泡排序
{
int i,j,t;
for(i=0;i<M;i++)
for(j=0;j<M-i-1;j++)
if(sum[j]<sum[j+1])
{
t=sum[j];
sum[j]=sum[j+1];
sum[j+1]=t;
}
}

void main()
{
int i,a[M][N],sum1[M],sum3[M],k,j;
float sum2[N];
printf("string:\n");
for(k=0;k<M;k++)
for(j=0;j<N;j++)
scanf("%d",&a[k][j]);
for(i=0;i<M;i++)
sum1[i]=sum3[i]=sumStu(a,i);
for(i=0;i<N;i++)
sum2[i]=sumSco(a,i);
sort(sum3);
printf("每个同学的总成绩:\n");
for(i=0;i<M;i++)
printf("%d ",sum1[i]);
printf("\n每门课的平均分:\n");
for(i=0;i<N;i++)
printf("%0.2f ",sum2[i]/5);
printf("\n每个同学的总成绩由大到小排序:\n");
for(i=0;i<M;i++)
printf("%d ",sum3[i]);
printf("\n");
}

参考资料: 自己的

滕濯qA
推荐于2017-12-15 · TA获得超过131个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:127万
展开全部
#include "stdio.h"

int sum(int a[]) {
int i, result = 0;
for (i = 0; i < 4; i++)
result += a[i];
return result;
}
float avr(int a) {
return a / 4.0;
}

int main() {
int students[5][4];
int i, j, su;
for (i = 0; i < 5; i++) {
printf("第%d个学生成绩:\n", i+1);
for (j = 0; j < 4; j++) {
printf("第%d科:", j+1);
scanf("%d", &students[i][j]);
}
}
printf("现在统计每名学生的总分和平均分!\n");
for (i = 0; i < 5; i++) {
su = sum(students[i]);
printf("第%d名学生 总分为:%d 平均分为:%0.2f\n", i+1, su, avr(su));
}
return 0;
}
追问
请问是对的么??
追答
#include "stdio.h"

int sum(int a[]) {
int i, result = 0;
for (i = 0; i < 4; i++)
result += a[i];
return result;
}

int main() {
int students[5][4];
int i, j, su;
for (i = 0; i < 5; i++) {
printf("第%d个学生成绩:\n", i + 1);
for (j = 0; j < 4; j++) {
printf("第%d科:", j + 1);
scanf("%d", &students[i][j]);
}
}
printf("现在统计每名学生的总分和平均分!\n");
for (i = 0; i < 5; i++) {
su = sum(students[i]);
printf("第%d名学生 总分为:%d", i + 1, su);
}
for (i = 0; i < 4; i++) {
for (su = 0, j = 0; j < 5; j++) {
su += students[j][i];
}
printf("第%d门课程平均分为:%0.2f\n", i + 1, su / 5.0);
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
867773467
2011-12-08 · TA获得超过180个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:145万
展开全部
#include<stdio.h>

void main()
{
int a[5][4];
int b[5]={0,0,0,0,0,};
double c[4]={0,0,0,0};
int i,j;
for(i=0;i<5;i++)
{ printf("输入第%d个学生的成绩\n",i+1);
for(j=0;j<4;j++)
{
printf("第%d科:",j+1);
scanf("%d",&a[i][j]);
b[i]+=a[i][j];
}
}

for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
c[i]+=a[j][i];}//求各科总分
}
for(j=0;j<4;j++)
printf("%d\n",c[j]);

for(i=0;i<5;i++)
printf("第%d个学总分是:%d\n",i+1,b[i]);

for(j=0;j<4;j++)
printf("第%d科平均分是:%f\n",j+1,c[j]/5.0);

} 方法笨拙。。。仅供参考。。
追问
请问这个程序能运行出来么??
追答
我试了,能运行,要不你试试,如果不行,只是怪我水平较低。。。我也是没学多久
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式