對於我正在處理作業分配的一個小函數有一些問題。插入數組中的所需元素,並將所有其他元素在C++中推送一個點
我有一個20(shelfSize)的靜態數組大小,但是,我只需要使用最多10個元素。所以我不必擔心超出界限等(整個數組20被初始化爲0)。
我正在做的是將一個整數booknum插入到它作爲輸入接收的數組的元素中。
這是我目前的邏輯:
void insert_at(int booknum, int element){
for(int i=element+1; i < shelfSize; i++)
bookshelf[i+1]=bookshelf[i]
bookshelf[element]=booknum;
}
讓我們說我有此數組:
[5,4,3,1,7]
我要插入一個8在元件1和具有該陣列轉到:
[5,8,4,3,1,7]
技術上,一切最後一個元素7是0,但是,我有一個單獨的打印功能,只打印到某個元素。
無論我多少次拿一些鉛筆和紙張並手工寫出自己的邏輯,我都無法得到這個工作。
任何幫助,將不勝感激,謝謝。
謝謝!奇怪的是,在我看到@ Simon-Buchan的評論後,我開發了適當的for循環。但是,我忘了在「shelfSize-1」處啓動它,但是我沒有得到超出界限的錯誤...數組的元素20不應該存在hmmmm。 – Staypuft
@Staypuft:歡迎:),我只是覺得它就像一個人告訴電腦插入一本書到一個書架上,人會要求電腦把這本書放在第21個索引處,然後電腦應該告訴他這是非法的,我認爲你應該儘可能多地處理錯誤。 –
@Staypuft:歡迎來到C++!這種語言永遠不會告訴你什麼時候你正在做一些可怕的錯誤!你覆蓋了數組結尾後編譯器的任何東西,這可能是一個安全漏洞。 –