【问题标题】:Index of the element in array changes but value don't数组中元素的索引发生变化,但值不变
【发布时间】:2020-10-26 16:08:51
【问题描述】:

您能否解释一下为什么 var ndx 每次都在变化,所以 value 也是如此(如果使用 print 函数),但不要在 for 循环中,所以每次我得到相同的值 (2)。我该如何解决这个问题?

int PerfNum(int ww)
{
    int prime[20] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41};
    int ndx = 0;
        for (int base = 2; base <= sqrt(ww); base++) {
            for (int pw = prime[ndx]; ww >= pow(base, pw); ndx++) {  // expected value is in array
            //for (int pw = prime[ndx]; ww >= pow(base, prime[ndx]); pw++ ) { this one works but...
                if (ww == pow(base, pw)) {
                    return 1;
                }
            }

        }
        return 0;

}

【问题讨论】:

    标签: arrays c


    【解决方案1】:

    在外部 for 语句的第一部分,您正在初始化变量 pw。这只发生一次(初始化),因此增加该索引不会对 pw 变量产生任何影响。

    for(init operation <- occurs one time; condition <- occurs before every step; poststep operation <- occurs after every step )
    

    【讨论】:

      猜你喜欢
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 2017-09-26
      • 2021-03-30
      • 2018-08-25
      相关资源
      最近更新 更多