首页 > 代码库 > 放大的X

放大的X

Problem Description
请你编程画一个放大的’X’。
如3*3的’X’应如下所示:

X X
X
X X

5*5的’X’如下所示:
X X
X X
X
X X
X X
 
Input
输入数据第一行是一个整数T,表示有T组测试数据;
接下来有T行,每行有一个正奇数n(3 <= n <= 79),表示放大的规格。
 
Output
对于每一个n打印一个规格为n * n放大的’X’;每组输出后面空一行。
 
Sample Input
2
3
5
 
Sample Output
 
X X
X
X X

X   X
X X
X
X X
X X

 1 #include <stdio.h> 2 #define N 100 3  4 int main(){ 5     int T; 6     int number; 7     int i; 8     int j; 9     int flag[N][N];10     int temp;11     12     scanf("%d",&T);13     14     while(T--){15         for(i=0;i<N;i++)16             for(j=0;j<N;j++)17                 flag[i][j]=0;18     19         scanf("%d",&number);20         21         i=0;22         j=0;23         temp=number;24         while(temp--){25             flag[i][j]=1;26             i++;27             j++;28         }29         30         i=number/2;31         j=number/2;32         temp=number/2+1;33         while(temp--){34             flag[i][j]=1;35             i--;36             j++;37         }38         39         i=number/2;40         j=number/2;41         temp=number/2+1;42         43         while(temp--){44             flag[i][j]=1;45             i++;46             j--;47         }48         49         temp=number;    50         for(i=0;i<=number/2;i++){51             for(j=0;j<temp;j++){52                 if(flag[i][j]==1)53                     printf("X");54                     55                 else56                     printf(" ");57             }58             temp--;59             printf("\n");60         }61         62         temp=number/2+2;    63         for(i=number/2+1;i<number;i++){64             for(j=0;j<temp;j++){65                 if(flag[i][j]==1)66                     printf("X");67                     68                 else69                     printf(" ");70             }71             temp++;72             printf("\n");73         }74         75         printf("\n");76     }        77     return 0;78 }

 

 

放大的X