C/C++经典程序训练5—图形打印问题 |
---|
Time Limit: 1000 ms Memory Limit: 8192 KiB |
Problem Description
图形的规则如下 ,要求输入n的值,按照图形的打印规则打印出相关的图形:
Input
输入整数n。
Output
按图形的规律打印出相关的图形。
Sample Input
4
Sample Output
+
+*+
+***+
+*****+
+***+
+*+
+
参考代码
#include<stdio.h>
int main()
{
int i,n,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
printf(" ");
}
for(j=i-1;j<i;j++)
{
printf("+");
}
for(j=1;j<=2*(i-1)-1;j++)
{
printf("*");
}
if(i!=1)
{
for(j=i+1;j>i;j--)
{
printf("+");
}
}
printf("\n");
}
for(i=n-1;i>0;i--)
{
for(j=1;j<=n-i;j++)
{
printf(" ");
}
for(j=i-1;j<i;j++)
{
printf("+");
}
for(j=1;j<=2*(i-1)-1;j++)
{
printf("*");
}
if(i!=1)
{
for(j=i+1;j>i;j--)
{
printf("+");
}
}
printf("\n");
}
return 0;
}
心得体会
嵌套for循环,外层代表行数,内层代表列数,在打印的时候尤其要注意要打印的列数。就像本题目一样,根据要打印的“*”和“+”的个数去写for循环的条件。