用户可以输入两个整数n,k:k<n.
现在必须输入n个任意整数,我想将其存储在数组中。
#include <iostream>
using namespace std;
int main(){
int n, k;
int scores[n];
cin >> n >> k;
for (int i = 0; i < n; i ++){
cin >> scores[i];
}
}
对于n=5,k=3,我在输入第三个随机数后得到以下错误消息
untitled.cpp:13:18: runtime error: index 3 out of bounds for type 'int [*]'
如果总数组"0",分数[3]怎么会越界;分数";由5个元素组成?
在读取数据之前,n
未初始化并且具有不确定的值。
n
的使用必须在阅读之后。
#include <iostream>
using namespace std;
int main(){
int n, k;
cin >> n >> k;
int scores[n]; // move this
for (int i = 0; i < n; i ++){
cin >> scores[i];
}
}
还要注意,像这样的可变长度数组不在C++的标准中。请考虑改用std::vector
。
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n, k;
cin >> n >> k;
vector<int> scores(n);
for (int i = 0; i < n; i ++){
cin >> scores[i];
}
}