#include <stdio.h>
/* n为第一行有的*的个数 */
void PrintN(int n)
{
int i, j;
/* 上半部分 */
for(i=n; i>0; i-=2 )
{
j = (n-i)/2;/* 空格数 */
while( j-->0 )/* 输出空格 */
{
printf(" ");
}
/* 输出i个* */
for( j=0; j<i; j++ ) printf("*");
/* 一行完了,换行 */
printf("\n");
}
/* 下半部分 */
for(i=1; i<=n; i+=2 )
{
j = (n-i)/2;/* 空格数 */
while( j-->0 )
{
printf(" ");
}
for( j=0; j<i; j++ ) printf("*");
printf("\n");
}
}
int main(int argc, char *argv[])
{
PrintN(20);
return 0;
}
结果: