【问题标题】:For loop not providing correct integers? Syntax error?For循环没有提供正确的整数?语法错误?
【发布时间】:2021-11-20 15:53:12
【问题描述】:

这个问题的提示是:

首先,读入变量 inCount 的输入值。然后,从输入中读取 inCount 个整数,并在字符串“number-”之后的换行符上输出每个整数。

我使用的代码是

for (int inCount = 0; inCount <= 90; inCount++) {
      cin >> inCount;
      cout << "number-" << inCount << endl;
}

程序用几组数字测试这段代码,看看代码是否正常工作,是否意外成为 IL 或其他东西,但为了节省空间,我只分享第一个:

我的输出:

number-5
number-30
number-85
number-90

正确的输出:

number-30
number-85
number-90
number-65
number-70

谁能帮我解决我做错了什么?提前谢谢。

【问题讨论】:

    标签: c++ for-loop syntax infinite-loop


    【解决方案1】:

    我认为他们描述的更像是这样的

    int count = 0;
    std::cin >> count;
    
    for (int i = 0; i < count; ++i)
    {
        int value = 0;
        std::cin >> value;
        std::cout << "number-" << value << std::endl;
    }
    

    换句话说,count 表示要读入多少个值,然后循环多次并写出每次迭代提供的值。

    【讨论】:

      【解决方案2】:

      这是使用 while 循环的工作示例。

      
      #include <iostream>
      
      using namespace std;
      
      int main()
      {
          std::cout<<"Hello World"<<std::endl;
          int count = 0;
          std::cin >> count;
      
      while(count > 0)
      {
          int value = 0;
          std::cin >> value;
          std::cout << "number-" << value << std::endl;
          
          --count;
      }
          return 0;
      }
      
      

      【讨论】:

        【解决方案3】:

        您正在使用相同的变量来驱动循环并读取用户的输入。一旦用户输入数字&gt;= 90inCount++ 就会将inCount 增加到&gt; 90 的值,从而导致循环条件中断。

        您需要使用单独的变量,例如:

        int inCount;
        cin >> inCount;
        
        for (int i = 0; i < inCount; ++i) {
            int inNumber;
            cin >> inNumber;
            cout << "number-" << inNumber << endl;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多