在c ++中使用循环遍历数组并且程序说“退出状态-1”?
Posted
技术标签:
【中文标题】在c ++中使用循环遍历数组并且程序说“退出状态-1”?【英文标题】:Iterating through array using loop in c++ and program says "exit status -1"? 【发布时间】:2019-04-16 03:21:02 【问题描述】:所以我正在努力适应我的硬件分配的数组。我有两个循环。第一个循环遍历序列,这很好,我想我不知道。然后第二个循环应该根据 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] << ".";
【问题讨论】:
你跑过了数组的末端。在这两个循环中,您都希望从 0 开始,然后转到count < size_of_array
。
您的代码没有显示从 int 值的 main 返回...未定义的行为?也许尝试“返回0;”在 main 的末尾。
@JerryCoffin 你是什么意思?您能否通过“数组结尾”的意思给出更多解释/见解?我以为我只是从 0 到 5 我不明白!谢谢你到目前为止的帮助
@2785528 main
在 C++ 中不需要 return 语句。
首先,count = 1
表示它从 1 开始。然后,count <= size_of_array
表示直到计数大于 5 才会退出,这意味着 count
在该循环中的最后一个值将是 5。
【参考方案1】:
数组的第一个索引为 0,所以当size_of_array
为 5 时,可能的索引为 0、1、2、3、4。
ideal_cars[0]
。
第二个元素是ideal_cars[1]
。
第三个元素是ideal_cars[2]
。
第四个元素是ideal_cars[3]
。
第五个元素是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.
【讨论】:
请再澄清一些?抱歉刚刚开始编码......我真的很困惑,并感谢更多解释。您能否就您的意思提供更多背景信息?为什么你所做的工作而不是我的工作? 添加说明。 为什么 Ideal_cars[5] 超出范围?当您的意思是超出范围时,您是指数组吗?我的数组也是从 0 开始的,那么它不应该是 0 1 2 3 4 吗?那是5个位置?那么,如果我计算 5 个元素,为什么它会超出范围呢?我真的很困惑。教科书代码看起来相同并且工作正常 当您声明string ideal_cars[5];
时,您正在创建一个包含 5 个元素的数组。这 5 个元素可以通过ideal_cars[0]
、ideal_cars[1]
、ideal_cars[2]
、ideal_cars[3]
、ideal_cars[4]
访问。那么ideal_cars[5]
是第 6 个元素吗?请注意,您只使用 string ideal_cars[5]
来声明数组,ideal_cars[0..4]
来使用数组。以上是关于在c ++中使用循环遍历数组并且程序说“退出状态-1”?的主要内容,如果未能解决你的问题,请参考以下文章