题目来源:http://acm.hdu.edu.cn/diy/contest_showproblem.php?pid=1001&cid=31288&problem=Problem%20%20I
解法或类型:循环结构,和输入菱形类似。
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
题意描述
给一个数输出一个由X组成的X。每一支上X的个数由你输入的数决定。
解题思路
写两个双层循环,第一层控制行数,第二层控制每行的输出几个X几个空格。
时空分析:
程序代码:
#include<stdio.h>
int main()
{
int n,m,i,j,a,b;
scanf("%d",&m);
while(m--)
{
scanf("%d",&n);
a=1;
b=n;
for(i=1;i<=n/2;i++)
{
for(j=1;j<a;j++)
{
printf("");
}
printf("X");
for(j=1;j<=b-2;j++)
{
printf("");
}
printf("X");
b=b-2;
a=a+1;
printf("\n");
}
b=n;
a=1;
for(j=1;j<=b/2;j++)
{
printf("");
}
printf("X\n");
for(i=1;i<=n/2;i++)
{
for(j=1;j<b/2;j++)
{
printf("");
}
printf("X");
for(j=1;j<=a;j++)
{
printf("");
}
printf("X");
b=b-2;
a=a+2;
printf("\n");
}
printf("\n");
}
return 0;
}
错误分析: 1、一些变量忘记定义初始值。
2、输出后面少空一行。