i表示行號,打一行i 就加1
j表示某一行需要列印空格的數目
k表示某一行需要列印‘*’的數目
這個程式打了一個7行的菱形,我把程式改一下,把i,j,k的計數都從1開始,看起來會比較直觀
#include <stdio.h>
void main()
{
int i,j,k;
for(i=1;i<=4;i++) //先列印前4行
for(j=1;j<=4-i;j++) //每一行先列印需要列印的空格,空格數為(4 - 行號),譬如第1行,需要打4-1個空格,第2行需要打4-2個空格
printf(" ");
for(k=1;k<=2*i -1;k++) //打完空格打‘*",每行需要列印2倍行號+1個,譬如第1行列印2*1 - 1個,第2行列印2*2 - 1=3個
printf("*");
printf("\n");
}
for(i=1;i<=3;i++) //然後列印後面三行,行號從1開始計算
for(j=1;j<=i;j++) //每行列印空格數為行號數,譬如第1行列印1個,第2行列印2個
for(k=1;k<=7-2*i;k++) //每行列印7-2*i個’*",譬如第1行列印7-2*1=5個,第2行列印7-2*2=3個
i表示行號,打一行i 就加1
j表示某一行需要列印空格的數目
k表示某一行需要列印‘*’的數目
這個程式打了一個7行的菱形,我把程式改一下,把i,j,k的計數都從1開始,看起來會比較直觀
#include <stdio.h>
void main()
{
int i,j,k;
for(i=1;i<=4;i++) //先列印前4行
{
for(j=1;j<=4-i;j++) //每一行先列印需要列印的空格,空格數為(4 - 行號),譬如第1行,需要打4-1個空格,第2行需要打4-2個空格
printf(" ");
for(k=1;k<=2*i -1;k++) //打完空格打‘*",每行需要列印2倍行號+1個,譬如第1行列印2*1 - 1個,第2行列印2*2 - 1=3個
printf("*");
printf("\n");
}
for(i=1;i<=3;i++) //然後列印後面三行,行號從1開始計算
{
for(j=1;j<=i;j++) //每行列印空格數為行號數,譬如第1行列印1個,第2行列印2個
printf(" ");
for(k=1;k<=7-2*i;k++) //每行列印7-2*i個’*",譬如第1行列印7-2*1=5個,第2行列印7-2*2=3個
printf("*");
printf("\n");
}
}