c语言 输入10个学生5门功课成绩求:1每个学生的平均分;2每门功课的平均分;3计算平均方差

我不会做啊,真难

#include<stdio.h>

int main()
{
    float stu[10][5];
    float a[10];
    int i,j;
    float sum,ave;
    for (i=0; i<10; i++) {
        printf("输入第%d个学生的成绩:",i+1);
        for (j=0; j<5; j++) {
            scanf("%f",&stu[i][j]);
        }
    }
    for (i=0; i<10; i++) {
        sum=0;
        for (j=0; j<5; j++) {
            sum=sum+stu[i][j];
        }
        printf("第%d个学生的平均分:%.2f\n",i+1,ave=sum/5);
        a[i]=ave;
    }
    for (i=0; i<5; i++) {
        sum=0;
        for (j=0; j<10; j++) {
            sum=sum+stu[j][i];
        }
        printf("第%d科成绩平均分:%.2f\n",i+1,ave=sum/10);
    }
    ave=0;
    for (i=0; i<10; i++) {
        ave=ave+a[i];
    }
    ave=ave/10;
    sum=0;
    for (i=0; i<10; i++) {
        sum=sum+(a[i]-ave)*(a[i]-ave);
    }
    printf("平均方差:%f\n",sum/10);
    return 0;
}


输入输出数据测试:

输入第1个学生的成绩:44 66 33 55 22

输入第2个学生的成绩:88 44 88 34 66

输入第3个学生的成绩:24 77 44 88 33

输入第4个学生的成绩:56 33 56 67 78

输入第5个学生的成绩:54 44 23 55 66

输入第6个学生的成绩:23 45 54 22 16

输入第7个学生的成绩:55 88 77 55 99

输入第8个学生的成绩:77 57 98 76 98

输入第9个学生的成绩:77 86 47 84 87

输入第10个学生的成绩:100 100 100 99 99

第1个学生的平均分:44.00

第2个学生的平均分:64.00

第3个学生的平均分:53.20

第4个学生的平均分:58.00

第5个学生的平均分:48.40

第6个学生的平均分:32.00

第7个学生的平均分:74.80

第8个学生的平均分:81.20

第9个学生的平均分:76.20

第10个学生的平均分:99.60

第1科成绩平均分:59.80

第2科成绩平均分:64.00

第3科成绩平均分:62.00

第4科成绩平均分:63.50

第5科成绩平均分:66.40

平均方差:364.128357

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-26
void main()
{
int i,j;
float score[20][11];
float avgstud[20]={0.0};/*学生平均分*/
float avgcourse[6]={0.0};
float delta[20]={0.0};/*方差*/

/*输入学生的成绩,五个一组*/

for(i=1;i<=10;i++)
{
printf("please input student %d: score(5 total)\n",i);
for(j=1;j<=5;j++)
scanf("%f",&score[i][j]);
}
/*计算每个学生的平均分*/
for(i=1;i<=10;i++)
{
for(j=1;j<=5;j++)
{
avgstud[i]=avgstud[i]+score[i][j];
}
avgstud[i]=avgstud[i]/5;
}
/*计算每门课的平均分*/
for(i=1;i<=5;i++)
{
for(j=1;j<=10;j++)
{
avgcourse[i]=avgcourse[i]+score[j][i];
}
avgcourse[i]=avgcourse[i]/10.0;
}
/*计算每门课的方差*/
for(i=1;i<=5;i++)
{
for(j=1;j<=10;j++)
{
delta[i]=(avgcourse[i]-score[j][i])*(avgcourse[i]-score[j][i]);
}
delta[i]=delta[i]/10.0;
}

printf("\nthe score of the student:\n");
for(i=1;i<=10;i++)
{
for(j=1;j<=5;j++)
printf("%8.2f",score[i][j]);
printf("\n");
}

printf("\nthe average score of every student:\n");
for(i=1;i<=10;i++)
{
printf("%8.2f\n",avgstud[i]);
}
printf("\n");

printf("\nthe avgcourse:\n");
for(i=1;i<=5;i++)
{
printf("%8.2f",avgcourse[i]);
}

printf("\nthe delta of every course:\n");
for(i=1;i<=5;i++)
{
printf("%10.8f\n",delta[i]);
}
printf("\n");
printf("\n");
getch();
}

不懂再问我呵。写了我半个小时呢,呵呵本回答被提问者和网友采纳
第2个回答  2009-04-17
这个是三个人的三科目:(再改成五行五列就是你要的了!第三个问题我没懂!)
#include <iostream.h>
void main()
{
int a[3][3]={85,90,80,65,70,75,75,85,77};
float s;
int t;
cout<<"j代表科目:英语,数学,C++;"<<endl;
cout<<"i代表学生."<<endl;
for(int i=0;i<3;i++)
{
s=0;
for(int j=0;j<3;j++)
{
s=s+a[i][j];
}
cout<<"就学生"<<i<<"的平均分数:"<<(s/3)<<endl;
}
for(int j=0;j<3;j++)
{
s=0;
for(int i=0;i<3;i++)
{
s=s+a[i][j];
}
cout<<"求"<<j<<"科目的平均分数:"<<(s/3)<<endl;
}
}
第3个回答  2009-04-17
把第三个问题补充一下,计算哪个的平均方差
第4个回答  2009-04-17
你把第三个问题给说明白了,我给你搞定!
相似回答