标题:M,N是矩阵的长宽,在我第三个for处理之后box里面的之应该都会变成1,,但是 ...
只看楼主
白金之星
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2018-3-12
结帖率:92.86%
已结贴  问题点数:20 回复次数:4 
M,N是矩阵的长宽,在我第三个for处理之后box里面的之应该都会变成1,,但是打印出来为什么都是0?
for(int k=0;k<3;k++)
    {
        for(int i=0;i<M;i++)
        {
            for(int j=0;j<N;j++)
                box[i][j]=0;
        }
        for(int i=0;i<M*N;i++)
        {
            int xx,yy;
            xx=(int)text[i]/N;
            yy=(int)text[i]%N;
            
            if(box[xx][yy]==0)
            {
                img.at<Vec3b>(xx,yy)[k]=img.at<Vec3b>(i/N,i%N)[k];
                box[xx][yy]=1;
            }
        }
        for(int i=0;i<M;i++)
        {
            for(int j=0;j<N;j++)
            {
                printf(" %d ",box[i][j]);
            }
        }
    }
搜索更多相关主题的帖子: 矩阵 for box int i++ 
2018-07-18 15:44
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
鬼知道你这个 text[i] 是什么玩意儿
你自己在加一个调试语句试试
if(box[xx][yy]==0)
{
    img.at<Vec3b>(xx,yy)[k]=img.at<Vec3b>(i/N,i%N)[k];
    box[xx][yy]=1;
    printf( "box[%d][%d] = 1\n", xx, yy );
}
看看是不是每个box[][]都赋值了
2018-07-18 16:41
白金之星
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2018-3-12
得分:0 
回复 2楼 rjsp
text是一个大小为M*N的logistic混沌序列  我在加了你那句之后  看到他们都被付了1   但是为什么一出了这个循环就变成了0
我也没多做什么啊
2018-07-18 17:21
kfyniriu
Rank: 6Rank: 6
等 级:侠之大者
威 望:9
帖 子:105
专家分:426
注 册:2018-7-6
得分:10 
for(int k=0;k<3;k++)
    {
        for(int i=0;i<M;i++)
        {
            for(int j=0;j<N;j++)
                box[i][j]=0;
        }

k循环,循环3次,每次box[i][j]都被重新赋值0;
2018-07-18 21:44
白金之星
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2018-3-12
得分:0 
回复 4楼 kfyniriu
我知道会重置,,但是我的打印部分也在for里面呀  ,程序从上到下执行,那么打印出来的因该是1呀
2018-07-19 09:54



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




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

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