C语言学习笔记-递归2

来源:互联网 发布:磐厚资本知乎 编辑:程序博客网 时间:2024/05/17 22:00

题目要求:将从键盘输入的四个字母的所有排列情况打印出来

思      路:递归

个人心得:并没有真正理解递归,自己写的话,写不出来。

 #include<stdio.h>

s(int n, char a, char b, char c, char d)

    switch(n) 

    { 

        case 4:  

             s(3, a, b, c, d); 

             s(3, b, a, c, d);  

             s(3, c, a, b, d); 

             s(3, d, a, b, c); 

             break; 

        case 3: 

             s(2, a, b, c, d);

             s(2, a, c, b, d); 

             s(2, a, d, b, c); 

             break; 

         case 2:  

             s(1, a, b, c, d); 

             s(1, a, b, d, c);  

             break; 

          case 1:  printf("%c%c%c%c/n", a,b,c,d); 

       }

}

int main()

{

     char c1, c2, c3, c4; 

     printf("Input 4 characters:"); 

     c1 = getchar(); c2 = getchar(); c3 = getchar(); c4 = getchar(); 

     s(4, c1, c2, c3, c4);

     getchar(); 

}