1.漢諾塔問題
/*hanoi(漢諾塔問題)*/#include <stdio.h>void move(char getone,char putone){printf("%c->%c\n",getone,putone);}void hanoi(int n,char one,char two,char three)/*將n個盤子從one藉助two,移到three*/{if(n == 1){move(one,three);}else{hanoi(n-1,one,three,two);move(one,three);hanoi(n-1,two,one,three);}}int main(){int m;printf("please input a number:");printf("%d",&m);printf("the step to moving %d disks :\n",m);hanoi(m,'A','B','C');return 0;}2.利用遞迴函式調用方式,將所輸入的n個字元以相反順序列印出來
/*利用遞迴函式調用方式,將所輸入的n個字元以相反順序列印出來*/#include <stdio.h>void print_char(int n){char a;if(n <= 0){a=getchar();putchar(a);}else{a=getchar();print_char(n-1); //當輸入不止一個字元時,先進後出輸出putchar(a);}}int main(){int i;printf("please input n:");scanf("%d",&i);print_char(i);return 0;}
3.寫一個函數實現9*9乘法表
/*輸出9*9乘法表:要求輸出格式為:1 2 3 4 5 6 7 8 9- - - - - - - - -1 2 43 6 94 8 12 165 10 15 20 25...9 18 27 36 ............81*/#include <stdio.h>int main(){int i = 0;int j = 0;int a[9][9];for ( i = 0;i < 9 ;i++ ){for ( j = 0;j < 9;j++ ){a[i][j] = ( i + 1 )*( j + 1 );//實現乘法運算}}printf("1 2 3 4 5 6 7 8 9\n");printf("- - - - - - - - -\n");for ( i = 0;i < 9;i ++ ) //輸出乘法表{for ( j = 0;j <= i ;j ++ ){printf("%d ",a[i][j]);}printf("\n");}return 0;}