来源:微信公众号「编程学习基地」
循环训练
使用for循环语句用 * 打印出n层金字塔
#include<stdio.h>
#define N 4 //N打印的层数
int main()
{
int i,j,k; //i是行 j是打印空格的数量 k是打印*的数量
for(i=1;i<=N;i++)
{
for(j=0;j<N-i;j++)
{
printf(" "); //打印空格
}
for(k=0;k<2*i-1;k++)
{
printf("*"); //打印*
}
printf("\n");
}
return 0;
}
打印空心金字塔
#include<stdio.h>
#define N 4
int main()
{
int i, j, k; //i是行 j是打印空格的数量 k是打印*的数量
for (i = 1; i <= N; i++)
{
for (j = 0; j<N - i; j++)
{
printf(" "); //打印空格
}
for (k = 0; k<2 * i - 1; k++)
{
if (i<N) //不是最后一行 就按照规律打印
{
if (k>0 && k<2 * i - 2)
{
printf(" ");
continue;
}
printf("*"); //打印*
}
else if (i == N) //最后一行全部打印
printf("*"); //打印*
}
printf("\n");
}
return 0;
}
打印一个棱形
#include<stdio.h>
#define N 4
int main()
{
int i,j,k; //i是行 j是打印空格的数量 k是打印*的数量
for(i=1;i<=N;i++)
{
for(j=0;j<N-i;j++)
{
printf(" ");//打印空格
}
for(k=0;k<2*i-1;k++)
{
printf("*");//打印*
}
printf("\n");
}
//倒过来再打印一遍
for(i=1;i<=N-1;i++)
{
for(j=0;j<i;j++) //空格找规律 第一行1个 第二行2个 第三行3个
{
printf(" ");//打印空格
}
for(k=0;k<2*N-1-2*i;k++) //2*N-4是上半部分最底层的*数量 -2*i是因为逐行减2个*
{
printf("*");//打印*
}
printf("\n");
}
return 0;
}