2.3用递归正/逆序打印一个数组所有元素。

 1 #include <stdio.h>
 2 //逆序打印数组所有元素,四个写法
 3 void func1_1(int* p,int i)//每个层递归的功能:打印第i下标上的元素(前需打印i+1下标上的元素)。
 4                           //多层合起来的功能就是打印了第a[0]-a[9]元素的逆序
 5 {
 6     if(i == 9)
 7         printf("%d\n",p[i]);
 8     else//普通情况递推公式,打印i元素之前,得先打印i+1的元素
 9     {
10         func1_1(p,i+1);
11         printf("%d\n",p[i]);
12     }
13 }
14 void func1_2(int* p,int i)//功能:打印第a[0]-a[9]元素的逆序
15 {
16     if(i != 9)
17     {
18         func1_2(p,i+1);
19     }
20     printf("%d\n",p[i]);
21  
22 }
23  
24 void func2_1(int *p, int i, int len)
25 {
26     if(i == len-1)
27     {
28         printf("%d\n",p[i]);
29     }
30     else
31     {
32         func2_1(p,i+1,len);
33         printf("%d\n",p[i]);
34     }
35 }
36  
37 void func2_2(int *p, int i, int len)
38 {
39     if(i != len-1)
40     {
41         func2_1(p,i+1,len);
42     }
43     printf("%d\n",p[i]);
44 }
45  
46 int main(void)
47 {
48     int arr[10] = {0,1,2,3,4,5,6,7,8,9};
49     func1_1(arr,0);
50     func1_2(arr,0);
51     func2_1(arr,0,10);
52     func2_2(arr,0,10);
53     return 0;
54 }

猜你喜欢

转载自www.cnblogs.com/ZhuLuoJiGongYuan/p/9464969.html
今日推荐