【问题标题】:How to print the Correct output using " while loop "?如何使用“while loop”打印正确的输出?
【发布时间】:2020-08-10 21:35:17
【问题描述】:

预期输出是 2000,但它在 1980 停止。

注意:执行从 20 开始,而不是从 0 作为 int i = 1

代码:

#include <iostream>
using namespace std;
int main() {
  const int iarraysize = 100;
  int i = 1;
  int iarray[iarraysize];
  while (i < iarraysize) {
    iarray[i] = 20 * i;
    cout << iarray[i++] << "\n";
  }
}

【问题讨论】:

标签: c++ arrays loops while-loop


【解决方案1】:

数组从 0 到 99,从 1 开始,它只到 99 (99*20=1980)。

您期望 2000 年,但没有 iarray[100](数组超出范围)。

【讨论】:

  • 我遇到了 99 个问题,但起始索引不是 1 --- [抱歉,必须完成 :)]
  • 我知道这种感觉,因为超市缺货,我现在不得不使用 GDPR 的卫生纸手册。
【解决方案2】:

变量i的最后一个小于100的值是99。所以20 * 99等于1990

如果你想得到 2000 然后重写循环像

int i = 0;
while (i < iarraysize) {
  iarray[i] = 20 * (i + 1);
  cout << iarray[i++] << "\n";
}

【讨论】:

    【解决方案3】:

    数组从 0 开始,在其大小之前结束 1。

    但是你不需要数组。

    #include <iostream>
    int main()
    {
        int limit = 100;
        int i = 1;
        while (i <= limit)
        {
            std::cout << (i++ * 20) << "\n";
        }
    }
    

    【讨论】:

    • 我会让limit const。除此之外,这是最好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2021-12-31
    • 2019-07-03
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    相关资源
    最近更新 更多