我不知道我在做什么错了我的程序,所以它不会输出它的意思输出。使用C++在数组中插入值时出现奇怪的异常/错误
我写了一个程序插入值到数组中特定的点,它的工作原理与此代码精致漂亮,
#include <iostream>
using namespace std;
main() {
int arr[] = {1,3,5,7,8};
int item = 10, k = 3, n = 5;
int i = 0, j = n;
cout<<"The original array elements are :\n";
for(i = 0; i<n; i++) {
cout<<"arr["<<i<<"] = "<< arr[i] <<"\n";
}
n = n + 1;
while(j >= k) {
arr[j+1] = arr[j];
j = j - 1;
}
arr[k] = item;
cout<<"The array elements after insertion :\n";
for(i = 0; i<n; i++) {
cout<<"arr["<<i<<"] = "<< arr[i] <<"\n";
}
}
以下是该程序的输出:
但如果我改变阵列大小即7,那么这将发生:
#include <iostream>
using namespace std;
main() {
int arr[] = {1,3,5,7,8,9,6};
int item = 10, k = 3, n = 7;
int i = 0, j = n;
cout<<"The original array elements are :\n";
for(i = 0; i<n; i++) {
cout<<"arr["<<i<<"] = "<< arr[i] <<"\n";
}
n = n + 1;
while(j >= k) {
arr[j+1] = arr[j];
j = j - 1;
}
arr[k] = item;
cout<<"The array elements after insertion :\n";
for(i = 0; i<n; i++) {
cout<<"arr["<<i<<"] = "<< arr[i] <<"\n";
}
}
输出上述程序的:
我无法理解的是什么,在哪里我做错了有这等程序异常/错误。
什么downvoting东西你不点t甚至费心去阅读,哪一个实际上是一个问题,并且需要真正的帮助,因此我知道stackoverflow的标准,因此请避免将我的问题推迟到关闭状态,除非您有充分的理由证明这是一个偶然或错误的问题。 –
数组的大小在编译时固定。试图超出分配数组的最后一个元素,导致未定义的行为。 – Dan
什么不正常?你期望输出什么? – user463035818