公子缠乡 发表于 2020-12-29 15:14:28

递归函数 倒叙输出

题目描述
输入多个整数,以0结束,将这些整数逆序后输出。

要求:使用递归函数将数组倒序,在main中调用递归函数。

输入
多个整数,最后为0。

输出
逆序后的这些整数。

liangqing77 发表于 2020-12-29 15:42:13

666

jackz007 发表于 2020-12-29 16:20:56

本帖最后由 jackz007 于 2020-12-29 16:35 编辑

#include <stdio.h>

void reverse(int d[] , int a , int b)
{
      int t                              ;
      if(a < b) {
                t = d                   ;
                d = d                ;
                d = t                   ;
                reverse(d , a + 1 , b - 1) ;
      }
}

int main(void)
{
      int d , i , j , n                                                       ;
      for(i = 0 ;; i ++) {
                fflush(stdin)                                                         ;
                scanf("%d" , & d)                                                 ;
                if(d) for(j = 1 ; j < d + 1 ; j ++) scanf("%d" , & d) ;
                else break                                                            ;
      }
      for(i = 0 ; d; i ++) {
                printf("%d" , d)                                    ;
                for(j = 2 ; j < d + 1 ; j ++) printf(" %d" , d) ;
                printf("\n")                                                ;
      }
      for(i = 0 ; d ; i ++) reverse(& d , 0 , d - 1)    ;
      printf("after reverse.\n")                                          ;
      for(i = 0 ; d; i ++) {
                printf("%d" , d)                                    ;
                for(j = 2 ; j < d + 1 ; j ++) printf(" %d" , d) ;
                printf("\n")                                                ;
      }      
}
      编译、运行实况:
D:\0002.Exercise\C>g++ -o x x.c

D:\0002.Exercise\C>x
5
1 2 3 4 5
6
11 12 13 14 15 16
7
21 22 23 24 25 26 27
0
1 2 3 4 5
11 12 13 14 15 16
21 22 23 24 25 26 27
after reverse.
5 4 3 2 1
16 15 14 13 12 11
27 26 25 24 23 22 21

D:\0002.Exercise\C>
页: [1]
查看完整版本: 递归函数 倒叙输出