标题:二维数组 5个人,三门学科,求各学科平均成绩,,请大家帮忙找错
只看楼主
神奇的地球
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2010-6-6
结帖率:100%
已结贴  问题点数:20 回复次数:13 
二维数组 5个人,三门学科,求各学科平均成绩,,请大家帮忙找错
一个学习小组有5个人,每个人有三门课的考试成绩。求各分科的平均成绩

代码如下;
程序代码:
#include "stdio.h"
int main()
{
    int a[5][3],v[3];           //5个人三门功课定义为a[5][3],,v[3]为每门功课的平均分
    int i,j,s=0;
    for (i=0;i<3;i++)
    {
        for (j=0;j<5;j++)
        {
            scanf("%d",&a[j][i]);
            s=s+a[j][i];    //将5个人的i学科相加
        }
    v[i]=s/5;
    s=0;
    }
    printf("%d\n%d\n%d\n",v[0],v[1],v[2]);

}



我输入5次1、2、3,得不到正确的结果,

请大家看看是程序不对,还是哪里写错了,
谢谢大家指点



简单的说就是定义了一个5行3列的二维数组
求每一列的平均值
71 69 60
84 65 95
99 96 67
86 81 46
75 75 61


[ 本帖最后由 神奇的地球 于 2010-8-17 11:52 编辑 ]
搜索更多相关主题的帖子: 学科 
2010-08-16 22:04
yalewang
Rank: 2
等 级:论坛游民
帖 子:125
专家分:35
注 册:2010-4-15
得分:3 
求全组分科的平均成绩
这个怎么理解?
先用数学方法写出来,我帮你用计算机语言表达出来。
2010-08-16 22:13
神奇的地球
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2010-6-6
得分:0 
课程        Math    C   DBASE
             (v1)   (v2)  (v3)
张      80  75   92
王      61  65   71
李      59  63   70
赵      85  87   90
周      76  77   85

v[1]=math/5;    //math=80+61+59+85+76
v[2]=c/5;       //c=75+65+63+87+77
v[3]dbase/5;    //dbase=92+71+70+90+85


比如说数学的平均成绩,,,就是把5个人,每个人的数学成绩都加起来,然后除以5

[ 本帖最后由 神奇的地球 于 2010-8-16 22:44 编辑 ]
2010-08-16 22:19
神奇的地球
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2010-6-6
得分:0 
回复 4楼 xugaige
不行的
2010-08-17 00:14
luohhh123
Rank: 1
等 级:新手上路
帖 子:1
专家分:3
注 册:2010-3-27
得分:3 
printf输出改为v[0],v[1],v[2]试下
2010-08-17 02:05
流浪天边
Rank: 2
等 级:论坛游民
帖 子:100
专家分:53
注 册:2010-7-12
得分:3 
其实这个程序我也运行好久都出错拉,就是输出的 平均值出错.
2010-08-17 02:52
神奇的地球
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2010-6-6
得分:0 
其实这问题出在输入上
输入时输入5行3列
2010-08-17 09:33
滕云
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2010-8-17
得分:0 
printf输出改为v[0],v[1],v[2]试了可不可以
2010-08-17 11:20
燕强
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分:188
注 册:2010-8-11
得分:0 
#include "stdio.h"
int main()
{
    int a[5][3],v[3];           //5个人三门功课定义为a[5][3],,v[3]为每门功课的平均分
    int i,j,s=0;
    for (i=0;i<3;i++)
    {
        for (j=0;j<5;j++)
        {
            scanf("%d",&a[j][i]);               //你这里的输入应该是5个人的一门科目为一行,结果才是正确的,//如要按你的意思输入。。程序应该这样。。。
            s=s+a[j][i];    //将5个人的i学科相加
        }
    v[i]=s/5;
    s=0;
    }
    printf("%d\n%d\n%d\n",v[0],v[1],v[2]);

}
看看是不是你要的结果:

#include "stdio.h"
int main(void)
{
    float a[5][3],v[3];           //5个人三门功课定义为a[5][3],,v[3]为每门功课的平均分
    int i,j;
    float s;
    for(i = 0; i < 5; i++)
    {
        for(j = 0; j < 3; j++)
        scanf("%f",&a[i][j]);
    }
    for (i=0;i<3;i++)
    {
        s=0.0;
        for (j=0;j<5;j++)
        {
            s=s+a[j][i];    //将5个人的i学科相加
        }
        v[i]=s / 5.0;
    }
    printf("%f\n%f\n%f\n",v[0],v[1],v[2]);

}


2010-08-17 14:34
神奇的地球
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2010-6-6
得分:0 
回复 10楼 燕强
非常感谢指点啊
我想通了
谢谢啊
2010-08-17 14:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-315902-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052399 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved