我無法弄清楚如何正確地將陣列中的元素向右移1位。陣列未初始化爲[1 ,2, 3, 4, 5]
。所以當我換檔時,結果應該是[2, 3, 4, 5, 1]
,但是它出來的時候是[2, 3, 4, 5, 0]
,我不知道爲什麼。這是我到目前爲止 -將陣列中的元素向右移動1
for(k = 0; k <= n - 1; k++){
array[k] = array[k+1];
}
printf("Array is now:\n");
k = 0;
while(k < n) {
printf("x[%d] = %f\n", k, array[k]);
k++;
}
結果垂直打印。
您不保存第一個元素的副本。而當'k'爲'n-1'時,由於'k + 1 == n - 1 + 1 == n',所以'array [n]'全部讀出數組邊界。 – StoryTeller
我建議你編寫適當的函數,將數組解釋爲移位。實際上,對於大型陣列來說,轉換元件變得很昂貴如果他們保證相對較小,那麼您可以隨意使用任何作品。 – Downvoter
編譯器警告C4477:'printf':格式化字符串'%f'需要類型爲'double'的參數,但可變參數2的類型爲'int'。我假設*'數組'是'int',請提供MCVE。 –