打印出这个效果怎么实现
我们首先看哪一行的元素最多,最多的有多少个
可以看见最多有13个元素.
然后我们从第一行往下看规律,可以发现每次都是*左边增加一个,右边增加一个.
如果我们把一行当作一个数组那arr[13]=“ * ”,arr[6]='*';
那么第二行就是让arr[6-1]='*',和arr[6+1]='*';
每次周围都增加两*号,直到为最多项。
这最多项目包括最多项目的程序就为:
for(i=0;i<(sz-1)/2;i++)
{
arr[(sz-1)/2-i] = '*';
arr[(sz-1)/2+i] = '*';
printf("%s\n",arr);
}
后面也是一样的道理
让他每次减少两个*号即可;
代码为:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main()
{
char arr[16]=" * ";
int sz = strlen(arr);
int i = 0;
for(i=0;i<(sz-1)/2;i++)
{
arr[(sz-1)/2-i] = '*';
arr[(sz-1)/2+i] = '*';
printf("%s\n",arr);
}
for(i=5;i>0;i--)
{
arr[(sz-1)/2-i] = ' ';
arr[(sz-1)/2+i] = ' ';
printf("%s\n",arr);
}
return 0;
}