題目:將數組中n個元素按逆序存放并打印出來,使用函數封裝與指針
思路:
1.定義一個數組arr[5]和用于存放數組大小(數組大小通過sizeof關鍵字來進行計算)的變量len;
2.創建三個函數initArr、printArr、revangeArr,它們的形參都需要接收數組的首地址和大小,因此都需要定義兩個形參(*pArr、len)。
? ? ? ? 2.1 initArr的作用是獲取鍵盤輸入的值并通過循環遍歷進數組
? ? ? ? 2.2 printArr的作用是將數組中的元素遍歷并打印出來;
? ? ? ? 3.3 revangeArr的作用是將數組中的元素進行逆序存放。
? ? ? ? ? ? ? ? 3.3.1 逆序存放的思路:
? ? ? ? ? ? ? ? 首先我們要考慮到數組中元素是奇數個還是偶數個,是否這兩種情況的算法都不同。
? ? ? ? ? ? ? ? 奇數:奇數個元素的話我們就需要定到中間那個元素,且這個元素不需要交換。舉個例
? ? ? ? ? ? ? ? ? ? ? ? ? arr[5]={11,22,33,44,55},這個數組中間那個元素是33,對應下標是2,因此只需要? ? ? ? ? ? ? ? ? ? ? ? ? ? 定義一個 i < len/2,j=len-1-i。如下圖:
? ? ? ? ? ? ? ? ? ?偶數:偶數的元素思路與奇數一樣,同樣是定位到中間,如下圖:
????????????????因此,不管奇數還是偶數個元素的數組,利用循環時需要的條件都一致。有了這個思路,那么就只需要再定義一個變量用于值交換時的媒介即可
3.由于都是對數組地址進行操作,因此函數不需要返回值,函數類型就可以是空類型void。
4.在main函數中調用這三個函數就能得到對應的結果
具體代碼如下圖:
具體編譯結果如下圖: