使用C ++中的循环遍历数组,程序显示“退出状态-1”?

时间:2019-04-16 03:21:02

标签: c++ arrays loops exit status

因此,我正在尝试对硬件分配感到满意。我有两个循环。 First循环遍历整个序列,这很好,我想我也不知道。然后第二个循环应该显示用户输入的所有输入,具体取决于size_of_array的大小(在这种情况下为5,因此用户输入的车辆数应为5辆)。

当我运行它时,第一部分在接受输入方面效果很好,但是第二部分F R E A K S发出并给我“退出状态-1” wtf?!?!?!! ?? !!

感谢帮助:

#include <iostream>
using namespace std;

int main() 
{
  int size_of_array = 5;
  string ideal_cars[size_of_array];
  int count;

  for (count = 1; count <= size_of_array; count++)
  {
    cout << "Enter car number " << count << "." << "\n";
    cin >> ideal_cars[count];
  }

  for (count = 0; count <= size_of_array; count++)
  {
    cout << "You entered " << ideal_cars[count] << ".";
  }


}

1 个答案:

答案 0 :(得分:0)

数组的第一个索引为0,所以当size_of_array为5时,可能的索引为0、1、2、3、4。

  • 第一个元素是ideal_cars[0]
  • 第二个元素是ideal_cars[1]
  • 第三个元素是ideal_cars[2]
  • 第四个元素是ideal_cars[3]
  • 第5个元素是ideal_cars[4]

ideal_cars[5]超出范围,不允许使用。有关图形说明,请参见http://www.cplusplus.com/doc/tutorial/arrays

因此在您的for循环中,您需要确保count小于且不等于size_of_array

for (count = 0; count < size_of_array; count++)

示例:

#include <iostream>

using namespace std;

int main() 
{
  int size_of_array = 5;
  string ideal_cars[size_of_array];
  int count;

  for (count = 0; count < size_of_array; count++)
  {
    cout << "Enter car number " << count << "." << endl;
    cin >> ideal_cars[count];
  }

  for (count = 0; count < size_of_array; count++)
  {
    cout << "You entered " << ideal_cars[count] << "." << endl;
  }
  return 0;
}

演示:https://ideone.com/LWbSeu