首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >If语句在for循环-infinite循环中

If语句在for循环-infinite循环中
EN

Stack Overflow用户
提问于 2014-09-25 14:01:05
回答 2查看 106关注 0票数 0

在下面的代码中,我运行一个嵌套的for循环,并在循环中检查该状态是否为真。如果是这样,则加载一个内核,并与该内核一起执行卷积。主要是输入图像。

当我运行代码时,它就变成了一个无限循环。我不明白为什么。

代码语言:javascript
复制
for(m=0;m<h;m++)
{
    for(k=0;k<v;k++)
    {        
        if( (m = 261) && (k=361))
        { 
            printf("%f", Thickness[m][k]);
            printf("%d,%d",m,k);
            sprintf(fn,"F:\\newresult\\fft\\neww8_25.raw");
            if ((f2=fopen( fn, "rb" )) == NULL)
            {
                printf("Pb lecture fichier %s\n", fn);
                exit(1);
            }
            for(int a = 0; a < krow; ++a)
                for(int b = 0; b < kcol; ++b)
                    fread(&Kernel[a][b], sizeof(float), 1, f2);
            fclose(f2);
            for(int a = 0; a < krow; ++a)
                for(int b = 0; b < kcol; ++b)
                    sum+=Kernel[a][b];
            for(int a = 0; a < krow; ++a)
                for(int b = 0; b < kcol; ++b)
                    Kernel[a][b] /= sum;
            //convolute 
            s1 = convolve2D(primary, s1, m, k, Kernel, krow , kcol);
        }
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-25 14:04:47

if ((m = 261) && (k=361))这是个作业。

如果你想比较某件事:

  • 对于相等,请使用==
  • 更少/更大:</>
  • 对于非相等性:!=

代码语言:javascript
复制
if(f2 == nullptr)
if(!f2)

两种情况都是平等的。如果f2 空,那么..。

代码语言:javascript
复制
if(f2 != nullptr)
if(f2)

如果f2 不是空,那么..。

注意: nullptr是c++11特性。如果不使用c++11,则使用NULL insead。

编辑:作为@unwind评论,有两个作业。

由于261总是非零的,所以第一个条件总是真的。它将继续评估右侧,并将361分配给k

票数 3
EN

Stack Overflow用户

发布于 2014-09-25 14:12:20

您在这里将值赋值给mif( (m = 261) && (k=361)),它始终是真的(因为它是非零值)。应该是if( (m == 261) && (k==361))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26040582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档