//题目52:用递归打印以下图形 //* //*.*. //*..*..*.. //*...*...*...*... //*....*....*....*....*.... #include<stdio.h> #include<stdlib.h> //分析:熟练使用递归,递归比较难以理解,可以先写出for循环,再写递归 //递归的一般形式 //void 函数名(参数列表){ // if (终止条件) // { // return; // } // else{ // //执行的操作 // //调用本身 // } //} int m = 0, n = 0; void run111(int num){ if (num==0) { return; } else{ printf("*"); for (int k = 0; k < n - 1; k++) { printf("."); } run111(num - 1); // } } void run10(int num){ if (num == 10) { return; } else{ m = n = num; run111(num); printf("\n"); run10(num + 1); } } void main(){ run10(1); /*int m = 0,n=0; for (int i = 1; i < 10; i++) { m=n = i; while (m){ printf("*"); for (int k = 0; k < n - 1; k++) { printf("."); } m--; } printf("\n"); }*/ system("pause"); }
原文:http://www.cnblogs.com/zhanggaofeng/p/5252406.html