| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2087 人关注过本帖
标题:求助:分析一下计算过程
只看楼主 加入收藏
ztj20080808
Rank: 1
等 级:新手上路
威 望:1
帖 子:36
专家分:0
注 册:2008-10-27
收藏
得分:0 
回复 9# thwdzh 的帖子
您的分析很透彻了
同意
2008-10-28 12:13
逸逸
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-10-28
收藏
得分:0 
最终达到的就是a[1][]和a[3][]的元素相加
2008-10-28 14:25
cjl730
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2008-10-28
收藏
得分:0 
循环体里面的j=0可以省略
2008-10-28 15:53
ztj20080808
Rank: 1
等 级:新手上路
威 望:1
帖 子:36
专家分:0
注 册:2008-10-27
收藏
得分:0 
回复 13# 的帖子
好像不能吧
2008-10-28 18:14
kun8250
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-8-29
收藏
得分:0 
j=0,是回到行数组的第一个数,再相加,那个不能省略吧
2008-10-28 21:33
zqlzs
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-10-18
收藏
得分:0 
是J循环4遍以后,又重0开始循环!
2008-10-29 20:07
bayfish
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-9-1
收藏
得分:0 
我觉得不能省略啊,i==1的循环时候j最后已经是3了,要是里面没有j=0,那么进入i==3的第二次循环时,里面的do……while时候就只能算j=3的时候了,然后就直接运算完成了,我说的不知道对么
2008-11-10 21:08
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
-----------------do……while------------------
while(i++<4)
    {
        if(i==2||i==4)
        continue;
        j=0;
        do
        {
            s+=a[i][j];
            j++;
        }while(j<4);
    }

----------转换为for--------------
    for(i=0;i<4;i++)
    {
        if(i==2||i==4)
        continue;
        for(j=0;j<4;j++)
            s+=a[i][j];
    }

-----------------------------------------

    这回能看明白了吗?
2008-11-10 21:41
hokers
Rank: 1
等 级:新手上路
威 望:1
帖 子:102
专家分:0
注 册:2008-11-9
收藏
得分:0 
a[1]+a[3]=92
2008-11-10 21:54
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
include"stdio.h"
void main()
{
    int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
    int i=0,j=0,s=0;
    while(i++<4)  /*  当型循环,当i>4时,结束循环(此时i++,自身加1,所以一维的[0]没有参与。 */  
    {
        if(i==2||i==4)/* 当i值为2或者为4时,不执行下面的运算,直接跳到下一循环 */
        continue;
        j=0; /* j赋值为0,也就是二维数组的第二维的下标置为 0 */
        do /* 直到型循环 */
        {
            s+=a[i][j]; /*这行代码等价于: s=s+a[i][j]; */
            j++;  /* j值自加,为结束循环创造条件 */
        }while(j<4); /* 直到型循环的结束条件,直到j>4时结束 */
    }
    printf("%d\n",s);/* 打印s值 */
}

---------------------------------------------------------

    这个程序很简单明了,就是要求出{5,6,7,8},{11,12,13,14},{15,16,17,18}这几组数据中若干组的累加和。根据i的条件可以看出,一维下标为2为4时,不参与运算。这是个a[4][4]的数组,i为4时是不可能的,所以这就是a[1],a[3]这几组数据累加,最后输出s值。由此可以得出s=5+6+7+8+15+16+17+18=92,所以最后输出:92。

-------------------------------
    希望我讲的可以让你明白,其实这就是一个简单的循环问题——貌似简单,其中却另有玄机。唉~多谢那位朋友的提醒,下次一定再认真些,把程序运行一遍再说。我犯了一个很主观的错误,很自以为然,请大家批评。

[[it] 本帖最后由 广陵绝唱 于 2008-11-11 00:18 编辑 [/it]]
2008-11-10 22:12
快速回复:求助:分析一下计算过程
数据加载中...
 
   



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

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