#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; }
结果: