C++ 这个数组的循环可以工作,但我仍然得到一个编译器错误?调试错误运行时检查失败#2-S
嘿,伙计们,我刚开始使用阵列 有人能解释一下这个话题吗。这是我创造的,我认为这是有道理的,但我肯定错过了什么。 我得到一个调试错误运行时检查失败#2-S 错误类型如下:调试错误运行时检查失败#2-SC++ 这个数组的循环可以工作,但我仍然得到一个编译器错误?调试错误运行时检查失败#2-S,c++,arrays,for-loop,C++,Arrays,For Loop,嘿,伙计们,我刚开始使用阵列 有人能解释一下这个话题吗。这是我创造的,我认为这是有道理的,但我肯定错过了什么。 我得到一个调试错误运行时检查失败#2-S 错误类型如下:调试错误运行时检查失败#2-S #include<iostream> #include<iomanip> #include <climits> //Prototypes: int lowestAmount(int[]); int highestAmount(int[]); using
#include<iostream>
#include<iomanip>
#include <climits>
//Prototypes:
int lowestAmount(int[]);
int highestAmount(int[]);
using namespace std;
int main() {
const int AMOUNT = 9;
int values[AMOUNT];
int lowest, highest;
cout << "Please Insert 10 Numbers of your Choice: ";
cin >> values[0] >> values[1] >> values[2] >> values[3] >>
values[4] >> values[5] >> values[6] >> values[7] >>
values[8] >> values[9];
cout << endl;
lowest = lowestAmount(values);
highest = highestAmount(values);
cout << "/tThe Lowest out of all of them is: " << lowest <<
endl;
cout << "/tThe Highest out of all of them is: " << highest << endl ;
return 0;
}
int lowestAmount(int val[]) {
int lowest = INT_MAX;
int count = 10;
for (int i = 0; i < count; i++) {
if (val[i] < lowest)
lowest = val[i];
}
return lowest;
}
int highestAmount(int val[]) {
int highest = INT_MIN;
int count = 10;
for (int i = 0; i < count; i++) {
if (val[i] > highest)
highest = val[i];
}
return highest;
}
#包括
#包括
#包括
//原型:
int lowstamount(int[]);
int highestAmount(int[]);
使用名称空间std;
int main(){
常数整数=9;
整数值[金额];
int最低,最高;
cout>值[0]>>值[1]>>值[2]>>值[3]>>
值[4]>>值[5]>>值[6]>>值[7]>>
数值[8]>>数值[9];
cout数组索引从零开始,这意味着最后一个索引是元素的数量减去1。您希望用户输入10个数字,您可以读取值[0]
到值[9]
,但您的数组没有空间容纳它
const int AMOUNT = 9;
int values[AMOUNT];
这意味着您声明的数组足够大,可以容纳9个元素,而不是10个元素。AMOUNT
必须是10
C++不会自动执行边界检查。这意味着,如果在数组之外编写,将出现不可预测的行为,甚至不能依赖程序总是崩溃
在上/下两个函数中都存在一个错误,即忽略最后一个元素,即使它现在仍然存在。一旦将数组修复为包含10个元素,则需要循环直到i<10
同样在将来,你会得到更好的帮助,特别是发布不起作用的内容,这意味着你应该显示编译器/调试器错误,而不仅仅是你的代码。Hi!你的代码?它,有点,但我得到一个错误,它说。调试错误运行时检查失败#2-SI将两个函数中的count var增加了1,因此9的d我放了10,我仍然得到了错误???数组开始时,从0开始吗?所以从0到9是10???我将数量从9替换为10,它起作用了!!然而我很困惑?但是,将它增加到10会像数组从0开始,然后变为9,因为0到9是10个值的总和吗?哦,对不起,我是com的新手munity,下次我也会确保在帖子中插入错误,谢谢。是的,它从0开始,0到9意味着有十个位置。请用手指数一下:)这是第一次学习数组时非常常见的混淆源。但是请记住数组索引从0开始,所以最后一个元素是大小-1。在十元素数组中,last一有索引9。我现在知道了,所以它上升到最后一个数字集并停止,它实际上并不计算它。所以如果我放10,它会看到10并停止。太棒了。谢谢。