如何使用“while loop”打印正确的输出?

Posted

技术标签:

【中文标题】如何使用“while loop”打印正确的输出?【英文标题】:How to print the Correct output using " 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";
  

【问题讨论】:

这能回答你的问题吗? What is a debugger and how can it help me diagnose problems? @Ayxan 是的,它包含了很好的信息。 【参考方案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。除此之外,这是最好的解决方案。

以上是关于如何使用“while loop”打印正确的输出?的主要内容,如果未能解决你的问题,请参考以下文章

VB中的do while……loop 和do……loop while语句是一样的吗

Python While Loop,也使用模数和继续命令

在计算某个整数的除数 # 时,我的程序无法跳出“While Loop”? [关闭]

vba如何把while loop得到的结果放入一个array里?

while循环的条件?

如何打印输出命令中的行数