大概思路:
依据样例找到空格输出的规律,如:
左侧输出的空格依次减2到0后,依次加2还原,每两个*之间有一个空格
然后就很简单了
#include <stdio.h>
int main(int argc,char const *argv[])
{
int n;
scanf("%d",&n);
int i,x,y,num,count=n-1;
y=num=1;
int sign =1;
if(n%2==1) {
for(x=1; x<=n; x++) {
if(x <= n) {
for(i=1; i <= count; i++){
printf(" "); //输出空格
}
while(y <= num) {
printf("* "); //输出 *
if(y==num) {
printf("\n");
}
y++;
}
y=1; // 清零
if(count<=0) {
sign = 0;
}
if(sign==1) {
count-=2; // 控制输出:空格
num += 2; // 控制输出:*
}else if(sign == 0) {
count+=2;
num -= 2;
}
}
}
}
return 0;
}