Problem Description
请你编程画一个放大的’X’。
如3*3的’X’应如下所示:
X X XX X 5*5的’X’如下所示:X X X X X X XX X
Input
输入数据第一行是一个整数T,表示有T组测试数据;
接下来有T行,每行有一个正奇数n(3 <= n <= 79),表示放大的规格。
Output
对于每一个n打印一个规格为n * n放大的’X’;每组输出后面空一行。
Sample Input
2
3
5
Sample Output
X X XX X
X X X X X X XX 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 else 56 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 else 69 printf(" "); 70 } 71 temp++; 72 printf("\n"); 73 } 74 75 printf("\n"); 76 } 77 return 0; 78 }
时间: 2024-10-20 09:40:21