-
在整個 main 函式中,只有這乙個變數,無論是第乙個 for 還是第二個 for,都是相同的 i,第二個 for 將有 i=-1,在 i= -1 的情況下,和 printf("%d ",a[i]);陳述。 所以不要害怕! 當案例沒有秒數時:
第乙個for執行後,i變成了10,但是你的陣列大小是10,如果i是10,則指向你的陣列的第11個位置,你的下標越界了,越界的後果會導致你的程式崩潰,但是現在沒有崩潰, 輸出的一定是亂碼,-36只是乙個表面現象,其實a[10]是乙個不定數,它可能是-36,也可能是其他數字。摘要:1
檢查下標,下標越界是程式設計師常犯的錯誤,導致系統崩潰、記憶體洩漏,有時找了很久都沒有找到問題。 2.在for語句中,即使只有乙個語句,也要加上{},養成良好的程式設計習慣!
-
輸出必須是 a[i] 的值,在第二秒不會出現 i = -1,你的 i > = 0 已經給出了乙個限制不是 -36,如果沒有秒的 for,輸出值一定是 9,你有沒有檢查其他地方是否對 a[i] 做了其他操作?
-
是第二個for中的ia,第二個for會有i = -1,但只在後台程式中執行輸出,直到a[0]才停止,第三種情況不清楚。
-
二維陣列的第一維可以省略,但第二維不能省略,可以通過分配第二維和陣列的值來獲得第一維的值。
在這個問題中,有 10 個陣列元素,10 個 5=2
由此可見,第一維是 2 個選項 b
-
選擇 B 2
定義了 9 個元素,第二維的大小是 5,所以第一維的大小是 2
-
陣列 c 的初始值為 0。
然後回收陣列 s 以計算陣列 c 的值。
i=0、c[s[0]]+c[1]++0++i=1、c[s[1]]+c[2]++0++i=2、c[s[2]]+c[3]++0++ 等,陣列 c[1] 是 ++ 4 次,c[2] 是 3 次,c[3] 是 3 次,c[4] 是 2 次。
-
答案:B
這是計數排序。
句子 c[s[i]]+ 是 s[i] 計數的次數。
具體來說,例如,如果 s[i]=1;
c[s[i]]=c[1],則,..s[i]=4; c[s[i]]=c[4];
c[s[i]]+ 是計數的 s[i] 個數。
for(int i=1; i<5;i++) 依次輸出 1、2、3 和 4 的數字。
printf("%d ", c[i]);
它是與輸出 s[i] 對應的數字數。
指標陣列。 首先,它是乙個陣列,陣列的元素都是指標,陣列占用的位元組數由陣列本身決定。 它是“儲存指標陣列”的縮寫。 >>>More