Android 開發技術週報 Issue#290
阿新 • • 發佈:2020-07-27
將一個數組中的值按逆序重新存放。例如:原來順序為8,6,5,4,1。要求改為1,4,5,6,8
【答案解析】
該題為陣列的逆置,具體處理方式如下:
如果begin < end時,則迴圈進行一下操作
- 給定兩個下標begin和end,begin放在陣列起始的位置,end放在陣列最後一個元素的位置
- 交換begin和end位置的元素
- begin往後移動,end往前移動
【程式碼實現】
#include<stdio.h> int main() { int array[5] = {8,6,5,4,1}; int begin = 0, end = 4; printf("逆序之前陣列為:"); for (int i = 0; i < 5; ++i) printf("%d ", array[i]); printf("\n"); // 逆序:begin在陣列最左側,end在陣列最右側 // 只要begin < end,將begin和end位置元素進行交換 // 然後begin往後移動一步,end往前移動一步 while (begin < end) { int temp = array[begin]; array[begin] = array[end]; array[end] = temp; begin++; end--; } printf("逆置之後陣列為:"); for (int i = 0; i < 5; ++i) printf("%d ", array[i]); printf("\n"); return 0; }
【結果截圖】