可以使用两个循环来实现,外层循环控制打印的行数,内层控制打印每行的星号和空格。
代码如下:
#include <stdio.h>
int main(void){
int i,j;
printf("使用for循环打印:\n");
for(i=1;i<=4;i++){ // 外层循环控制打印的行数 ,这里是打印四行
// 内层循环控制每行打印几个星号,打印次数与i的关系是,每行打印2*i-1个星号,同时在星号后面打印一个空格
for(j=1;j<=2*i-1;j++){
printf("* ");
}
if(i<4){ // 如果没到最后一行,则每行结束打印一个换行符
printf("\n");
}
}
printf("\n\n使用do-while循环打印:\n");
// 使用do-while循环打印,与for循环类似
i=1;
do{
j=1;
do{
printf("* ");
j++;
}while(j<=2*i-1);
if(i<4){
printf("\n");
}
i++;
} while(i<=4);
return 0;
}
供参考:
#include <stdio.h>
int main()
{
int N, i, j;
scanf("%d", &N);
for (i = 0; i < N; i++){
if (i)
printf("\n");
for (j = 0; j < 2 * i + 1; j++)
printf(j ? " %c" : "%c", '*');
}
return 0;
}