【ACM】hdu_zs1_1003_放大的X _201307271557

放大的X
Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 207   Accepted Submission(s) : 33
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
请你编程画一个放大的’X’。
如3*3的’X’应如下所示:

X X XX X5*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
 X
X X

X   X
 X X
  X
 X X
X   X

#include <stdio.h>
int main()
{
 int N;
 scanf("%d",&N);
 while(N--)
 {
  int i,j,n;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {
  for(j=1;j<=n;j++)
  {
  if(j==i||j==k)
  printf("X");
  else
  printf(" ");
  }
  printf(" ");
  }
  printf(" ");
 }
 return 0;
}
//第一次的代码,PE,没有考虑多余的空格,多输出了空格,
X   X
 X X
  X
 X X
X   X,如这个,(2,5),(3,4),(3,5),(4,5)位置是没有空格的
//

201307291600
#include <stdio.h>
int main()
{
 int N;
 scanf("%d",&N);
 while(N--)
 {
  int i,j,k,t,n;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {
  k=n+1-i;
  if(k>i)
  t=k;
  else
  t=i;
  for(j=1;j<=n;j++)
  {
  if(j==i||j==k)
  printf("X");
  else if(j<t)
  printf(" ");
  }
  printf(" ");
  }
  printf(" ");
 }
 return 0;
}
//AC

原文地址:https://www.cnblogs.com/xl1027515989/p/3223108.html