沙漏图形
题目描述
问题:输入n,输出正倒n层星号三角形。首行顶格,星号间有一空格,效果见样例
输入样例:
3
输出样例:
* * *
* *
*
* *
* * *
数据规模 1<= n <=50
/*沙漏图形:
思路:打印沙漏图形,当时思路是因为*是间隔着的,所以先存储后打印
1.分析找规律,上半部分与下半部分呈现对称性,先观察上半部分
上半部分为倒三角形,起始 * 的列号与行号相同
结束*号的行号+列号=row+1
2.下半部分为正三角形,可以利用对称性
以n=5为例,将6,7,8,9行分别映射到4,3,2,1行,他们的图形相同
故存储下半部分图形时,重新设置一个k,k为映射到上半部分的行号
再利用上半部分思路
注意:1.一定要记得初始化(连续输入好几个n,只有第一个图形能打印正确,
后面都会出现多余*图形,原来是数组没有初始化
但是数组是定义在循环里面的,也不太明白为什么
一定要初始化
2.提交后出现运行错误提示,能通过80%的测试,结果是数组越界
(注意n的大小
备注:这道题真真花了4+小时
注释为别人的思路,之后再看
*/
#include<stdio.h>
#define maxN 100
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
char a[maxN]