我不知道我在做什麼錯了我的程序,所以它不會輸出它的意思輸出。使用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