回型嵌套


***********
*         *
* ******* *
* *     * *
* * *** * *
* * * * * *
* * *** * *
* *     * *
* ******* *
*         *
***********

观察这个图形,它是由一系列正方形的星号方框嵌套而成。
在上边的例子中,最外方框的边长为11。

本题的任务就是从标准输入获得一个整数n(1<n<100)
程序则生成嵌套着的回字型星号方框。其最外层方框的边长为n

例如:
输入:
5
程序输出:
*****
*   *
* * *
*   *
*****

输入:6
程序输出:
******
*    *
* ** *
* ** *
*    *
******

 1 #include<stdio.h>
 2 char a[100][100]={0},n; 
 3 //画边框:m表示从坐标(m,m) 开始画。n表示'*' 的个数, 
 4 void fun(int m,int n)
 5 {
 6     if(n<0) return ;
 7     int k=m+n-1;//k表示终点坐标(k,k) 
 8     for(int i=m;i<=k;i++) 
 9         for(int j=m;j<=k;j++)
10             if(i==m||i==k||j==m||j==k)
11             a[i][j]=1;
12     fun(m+2,n-4);
13 }
14 int main()
15 {
16     scanf("%d",&n);
17     fflush(stdin);
18     fun(1,n);
19     for(int i=1;i<=n;i++)
20     {
21         for(int j=1;j<=n;j++)
22             if(a[i][j])printf("*");
23             else printf(" ");
24         putchar('\n');
25     }
26     getchar();
27     return 0; 
28 }

posted @ 2013-05-04 16:22  Please Call me 小强  阅读(293)  评论(0编辑  收藏  举报