| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3291 人关注过本帖
标题:求助:C++ for循环不能进行的原因
只看楼主 加入收藏
puya
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-10-30
收藏
 问题点数:0 回复次数:11 
求助:C++ for循环不能进行的原因
#include<iostream>
using namespace std;
void main()
{
    int a[4][4]={
        {1,2,3,4},
        {5,2,8,4},
        {1,9,3,7},
        {5,7,9,2}
    };
    int i=0,j,sum=0;
    cout<<"矩阵为:"<<endl;

    for(;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            cout<<a[i][j]<<'\t';
        }
        cout<<endl;
        
    };//此前为输出矩阵的代码,矩阵能顺利输出,没有错误


    int k=0,l=0;
    for(;k<4;k++)
    {
        for(;l<4;l++)
        {
            if(k==l)
            sum=sum+a[k][l];
                };
            };
    cout<<"k="<<k<<endl;
    cout<<"l="<<l<<endl;
    cout<<"正对角线值"<<sum<<endl;
}
//将 k.l在括号里声明的时候,为什么循环就可以进行?
搜索更多相关主题的帖子: include 
2011-11-03 09:17
puya
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-10-30
收藏
得分:0 
注:这个程序输出的对角线和值为1,本来应该是8的。我怀疑程序只进行了一次。
2011-11-03 09:19
puya
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-10-30
收藏
得分:0 
我明白了,l=0应该放在括号里,否则就自增至3就再也变不回0了。
2011-11-03 09:35
naruto01
Rank: 4
等 级:业余侠客
帖 子:103
专家分:280
注 册:2011-5-23
收藏
得分:0 
嵌套循环的l在进入下一次循环时,没有初始化为0,所以值保持是4

[ 本帖最后由 naruto01 于 2011-11-3 09:43 编辑 ]
2011-11-03 09:37
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
内循环一次之后 l的值恒为4,也就是说,内循环只执行一次!

★★★★★为人民服务★★★★★
2011-11-03 09:37
blue176
Rank: 2
等 级:论坛游民
帖 子:7
专家分:24
注 册:2010-7-15
收藏
得分:0 
额,很明显啊,如果你k,l放在外面,首先是外层循环,k为0,l为0,然后执行内部循环,此时if判定为假,因此不执行sum赋值那句,然后执行的又是内部循环,k,l依然为0,相等(执行sum赋值)。这样内部循环执行,直到l变为4,此时跳出循环,而sum为1。然后,执行外部循环,k++,变为1,然后执行内部循环,注意!!!由于你的l放在外面,此时l已经为4,内部循环无法执行,直接跳出。然后再执行外部循环,内部循环再也无法执行了。     因此从头到尾,sum的赋值只进行过一次! 另外,for后面不需要加";"
2011-11-03 09:55
zhangqi_gsts
Rank: 6Rank: 6
来 自:甘肃天水
等 级:侠之大者
威 望:1
帖 子:227
专家分:457
注 册:2011-3-27
收藏
得分:0 
....
2011-11-03 14:25
kuangdang178
Rank: 2
等 级:论坛游民
帖 子:12
专家分:32
注 册:2011-11-4
收藏
得分:0 
应该把l=0放到内层循环里面,如果像你那样的话,就在k=0这次外层循环时;l=4后就回不去了!以后l恒等于4,;这程序你至少要把l=0放到循环里面!
2011-11-04 17:51
飞扬_佳
Rank: 2
等 级:论坛游民
帖 子:19
专家分:20
注 册:2011-4-14
收藏
得分:0 
2011-11-04 18:17
l987748110
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2011-10-31
收藏
得分:0 
同意blme176!!!
2011-11-05 10:29
快速回复:求助:C++ for循环不能进行的原因
数据加载中...
 
   



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

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