返回列表 發帖

反轉(使用遞迴)

  1. #include <stdio.h>
  2. #include <string.h>

  3. void print(int arr[], int n)
  4. {
  5.     int i;
  6.     for ( i = 0; i <n; i++) {
  7.         printf("%d ", arr[i]);
  8.     }
  9. }

  10. // 反轉數組元素的函數
  11. void reverse(int arr[], int *out, int n)
  12. {
  13.     if (n<0) {
  14.         return;
  15.     }
  16.     out[7-n]=arr[n];
  17.     reverse(arr, out, n-1);
  18. }

  19. int main(void)
  20. {
  21.     int arr[] = { 35, 23, 17, 2, 5,11,20,1 };
  22.     int n = sizeof(arr)/sizeof(arr[0]);
  23.    //printf("%d",sizeof(arr));//sizeof-->取得資料型態的大小
  24.     int *dynArr = malloc( n * sizeof(int) );//動態指定陣列大小
  25.     reverse(arr, dynArr, n-1);
  26.     print(dynArr, n);
  27.     free(dynArr);//釋放記憶體
  28.     return 0;
  29. }
複製代碼
istak.teach2@gmail.com

返回列表