| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2141 人关注过本帖
标题:新手自学请帮下忙 sum[j]+=score[i][j];请问 这是为什么呢?
只看楼主 加入收藏
淡江胡真学习
Rank: 2
等 级:论坛游民
帖 子:20
专家分:17
注 册:2012-11-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
新手自学请帮下忙 sum[j]+=score[i][j];请问 这是为什么呢?
新人自学C语言遇到一个问题,请教下...
下面代码(红色部分)我不是很懂,请教哪位大大帮忙解释下啊~
1、书上不是说不能进行数组的整体运算么?为什么还有 sum[j]+=score[i][j];                    

多谢多谢
完整代码如下:
#include <stdio.h>                                /*使用printf要包含的头文件*/
#include <conio.h>
void main(void)                                    /*主函数*/
{
    /*声明一个int型二维数组score,大小为6*3,全部初始化为0*/
    int score[6][3]={{0},{0},{0}};
    /*声明两个double型数组sum和average,大小都为3,分别用于存储总分和平均分*/
    double sum[3]={0.0},average[3]={0.0};
    printf("请依次输入每个学员的3门成绩:\n");        /*输出提示信息*/
    printf("格式:数学  语文  英语\n");
    for(int i=0;i<6;i++)                            /*循环,依次读入6名学生的成绩*/
        for(int j=0;j<3;j++)
        {
            scanf("%d",&score[i][j]);                /*读取输入*/
            sum[j]+=score[i][j];                    /*总成绩累加*/
                                
        }
    printf("平均成绩:\n");
    for(int k=0;k<3;k++)
        {
            average[k]=sum[k]/6.0;                /*计算平均成绩*/
            printf("%.1f",average[k]);            
        }
    getch();                                    /*等待,按任意键结束*/
}
搜索更多相关主题的帖子: 自学 void include C语言 
2012-12-17 20:43
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:20 
scanf("%d",&score[i][j]);                /*读取输入*/
score为6*3整型数组,在这里scoar[i][j]表示这个数组中的某个元素,而&scoar[i][j]表示这个元素的存放地址,这句是输入数组元素

sum[j]+=score[i][j];                    /*总成绩累加*/
sum和score都有三列,分别保存各科的总成绩和分数,这句就是将各科成绩相加放在sum对应的元素中,j分别取0,1,2

小小战士,战士中的战斗机!
2012-12-17 20:59
淡江胡真学习
Rank: 2
等 级:论坛游民
帖 子:20
专家分:17
注 册:2012-11-23
收藏
得分:0 
回复 2楼 小小战士
你好,先谢谢你的解答
但是我还是不明白sum[j]和score[i][j]它们一个是一维数组一个是二维数组,它们怎么相加的?  
2012-12-17 21:13
淡江胡真学习
Rank: 2
等 级:论坛游民
帖 子:20
专家分:17
注 册:2012-11-23
收藏
得分:0 
回复 2楼 小小战士
sum[j]+=score[i][j];                    /*总成绩累加*/


上面这一段还有没有其他的写发呢?这是要求一个二维数组的累加,对不?
2012-12-17 21:15
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
以下是引用淡江胡真学习在2012-12-17 21:13:07的发言:

你好,先谢谢你的解答
但是我还是不明白sum[j]和score[j]它们一个是一维数组一个是二维数组,它们怎么相加的?  

的却,他们一个是一位数组,一个是二维数组,但是他们的元素都是整形,他们的元素是可以相加的
在这里,是元素相加

你要明确:在定义的时候,int num[10]表示一个素族,但在使用的时候,num[10]表示一个元素

小小战士,战士中的战斗机!
2012-12-17 21:35
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
以下是引用淡江胡真学习在2012-12-17 21:15:58的发言:

 sum[j]+=score[j];                    /*总成绩累加*/


上面这一段还有没有其他的写发呢?这是要求一个二维数组的累加,对不?


sum是放总分的,socre是放各科成绩的

举个例子
scoure中的值为:
socre[i][0]  socre[i][0]  socre[i][0]
数学         语文         英语
50           60           70
60           70           80
80           90           100
55           66           77
66           77           88
77           88           99
for(...)//为sum赋值
{
    ...
    sum[j]+=score[j];
}                       的执行过程就是
sum[0]=50+60+70+80+55+66+77   //socre[i][0]列元素的和
sum[1]=60+70+90+66+77+88      //socre[i][1]列元素的和
sum[2]=70+80+100+77+88+99     //socre[i][2]列元素的和

小小战士,战士中的战斗机!
2012-12-17 21:46
淡江胡真学习
Rank: 2
等 级:论坛游民
帖 子:20
专家分:17
注 册:2012-11-23
收藏
得分:0 
回复 6楼 小小战士
大概明白些了。
非常感谢你的耐心解答
2012-12-17 21:56
快速回复:新手自学请帮下忙 sum[j]+=score[i][j];请问 这是为什么呢?
数据加载中...
 
   



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

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