标题:【二维数组问题】输出四位学生的成绩和平均成绩,并且输出三门课程的成绩以 ...
只看楼主
星星的故乡
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2013-10-29
结帖率:50%
已结贴  问题点数:20 回复次数:5 
【二维数组问题】输出四位学生的成绩和平均成绩,并且输出三门课程的成绩以及平均成绩
物理   化学  生物  平均分
张三  92     90    95     0
李四  68     75    96     0
王五  78     88    89     0
曾六  45     61    79     0
代码如下:
能够实现,但总觉得太啰嗦了,请各位大侠帮忙看看是否有更简洁的实现方法,谢谢。
#define STUDENT_NUM 4
#define COURSE_NUM 3
int main()
{
    float grad[STUDENT_NUM+1][COURSE_NUM+1]={{92,90,95,0},{68,75,96,0},{78,88,89,0},{45,61,79,0},{0,0,0}};
    int i,j;
    float sum=0,average=0;

    for(i=0;i<STUDENT_NUM;i++)//    求每个同学三门课的平均成绩
    {
        sum=0;
        for(j=0;j<COURSE_NUM;j++)
        {
            sum+=grad[i][j];
        }
        grad[i][j]=sum/COURSE_NUM;

        printf("学生%d的平均成绩为%.1f\n",i+1,grad[i][j]);
    }

    for(j=0;j<COURSE_NUM;j++)//    求每门课的平均成绩
    {
        sum=0;
        for(i=0;i<STUDENT_NUM;i++)
        {
            sum+=grad[i][j];
        }
        grad[i][j]=sum/STUDENT_NUM;

        printf("课程%d的平均成绩为%.1f\n",j+1,grad[i][j]);
    }
   
    for(i=0;i<STUDENT_NUM+1;i++)
    {
        for(j=0;j<COURSE_NUM+1;j++)
        {
                printf("%6.1f",grad[i][j]);
            
        }
        printf("\n");
    }
    return 0;
}
搜索更多相关主题的帖子: average 课程 三门 化学 
2013-11-28 18:11
wht750109
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:49
专家分:151
注 册:2013-10-21
得分:7 
不啰嗦呀,有层次,语句清晰,看了很容易明白,工程编程时要求的不是简介,而是可维护性和可读性,甚至多一些解释语句,供维护人员理解。
2013-11-28 19:06
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
得分:7 
不需要在改了。。看着挺清晰的。。日后好维护

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-11-28 19:45
xiewei811508
Rank: 1
等 级:新手上路
帖 子:7
专家分:7
注 册:2013-11-27
得分:7 
#define STUDENT_NUM 4
#define COURSE_NUM 3
int main()
{
    float grad[STUDENT_NUM+1][COURSE_NUM+1]={{92,90,95,0},{68,75,96,0},{78,88,89,0},{45,61,79,0},{0,0,0}};
    int i,j;
    float sum=0,average=0;

    for(i=0;i<STUDENT_NUM;i++)//    求每个同学三门课的平均成绩
    {
        sum=0;
        for(j=0;j<COURSE_NUM;j++)
        {
            sum+=grad[i][j];
        }
        grad[i][j]=sum/COURSE_NUM;

        printf("学生%d的平均成绩为%.1f\n",i+1,grad[i][j]);
    }

    for(j=0;j<COURSE_NUM;j++)//    求每门课的平均成绩   //这位网友,我是个新手,在这里面逛看到你这道程序,这里这一步我没怎么看懂,两个常量3,4,求每门课的平均成绩,每列相加但是我觉得这里是3行4列,所以没看懂是什么意思,希望指点一下,谢谢
    {
        sum=0;
        for(i=0;i<STUDENT_NUM;i++)
        {
            sum+=grad[i][j];
        }
        grad[i][j]=sum/STUDENT_NUM;

        printf("课程%d的平均成绩为%.1f\n",j+1,grad[i][j]);
    }
   
    for(i=0;i<STUDENT_NUM+1;i++)
    {
        for(j=0;j<COURSE_NUM+1;j++)
        {
                printf("%6.1f",grad[i][j]);
            
        }
        printf("\n");
    }
    return 0;
}
2013-11-28 21:39
星星的故乡
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2013-10-29
得分:0 
for(j=0;j<COURSE_NUM;j++)//    求每门课的平均成绩   //这位网友,我是个新手,在这里面逛看到你这道程序,这里这一步我没怎么看懂,两个常量3,4,求每门课的平均成绩,每列相加但是我觉得这里是3行4列,所以没看懂是什么意思,希望指点一下,谢谢.
===============这里用j来控制列元素(三门课的成绩),我先算第一列(物理的平均成绩),然后再算第二列(化学的平均成绩)
   for(j=0;j<COURSE_NUM;j++)//    求每门课的平均成绩
    {
         sum=0;
         for(i=0;i<STUDENT_NUM;i++)
         {
             sum+=grad[i][j];
         }
         grad[i][j]=sum/STUDENT_NUM;

         printf("课程%d的平均成绩为%.1f\n",j+1,grad[i][j]);
     }
2013-11-29 09:58
星星的故乡
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2013-10-29
得分:0 
for(j=0;j<COURSE_NUM;j++)//    求每门课的平均成绩   //这位网友,我是个新手,在这里面逛看到你这道程序,这里这一步我没怎么看懂,两个常量3,4,求每门课的平均成绩,每列相加但是我觉得这里是3行4列,所以没看懂是什么意思,希望指点一下,谢谢.
===============这里用j来控制列元素(三门课的成绩),我先算第一列(物理的平均成绩),然后再算第二列(化学的平均成绩)
   for(j=0;j<COURSE_NUM;j++)//    求每门课的平均成绩
    {
         sum=0;
         for(i=0;i<STUDENT_NUM;i++)
         {
             sum+=grad[i][j];
         }
         grad[i][j]=sum/STUDENT_NUM;

         printf("课程%d的平均成绩为%.1f\n",j+1,grad[i][j]);
     }
2013-11-29 09:58



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




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

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