编写程序,打印以下图形:* *** ***** ******* ***** *** *?
这个图案一共N=7行,可以用for循环实现,i作为循环变量可以在每次循环体执行时取值0~6
循环体中具体输出每一行星号和前面的空格
空格规律:3,2,1,0,1,2,3 关键是利用当前行的i变量取值将它们计算出来
即i=0时公式得到3,i=1得到2,...
简单地如果公式写成i,那么计算出来的取值与i值相同
公式改成N/2-i:得到3,2,1,0,-1,-2,-3,只差后半段的符号了
abs(N/2-i):3,2,1,0,1,2,3,ok得到公式了
同理,星号个数是:1,3,5,7,5,3,1
公式N/2-abs(N/2-i):0,1,2,3,2,1,0
(N/2-abs(N/2-i))*2+1:1,3,5,7,5,3,1,ok
因此程序为:程序是非常简单的。
#include<stdio.h>
#define N 7
#define K (N/2-abs(N/2-i))
#define X ((N/2-K)*2+1)
void main() { int i,j;
for ( i=0;i<N;i++ ) {
for ( j=0;j<K;j++ ) printf(" ");
for ( j=0;j<X;j++ ) printf("*");
printf("\n");
}
}