c语言循环菱形

来源:百度知道 编辑:UC知道 时间:2024/05/28 06:32:38
#include<stdio.h>
void main()
{
int i,j,k;
for(i=1;i<=4;i++)
{
for(j=4;j>i;j--)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++)
printf(" ");
for(k=5;k>=2*i-1;k--)
printf("*");
printf("\n");
}

}
有点地方不太明白
for(k=5;k>=2*i-1;k--)和
for(j=4;j>i;j--)
j--,k--怎么样计算?
可以把每一步带进去说明一下吗?
谢谢大家
我想知道是怎样循环的,把具体的数带进去,得到什么结果?
比如第一步k=5;k>=1;k--,往下循环我就不去了,k--后面怎么样循环

for(j=4;j>i;j--) printf(" ");
当i=1时,表示在第一行输出三个空格。
当i=2时,表示在第二行输出两个空格。
当i=3时,表示在第三行输出一个空格。
当i=4时,表示在第四行不输出空格。
for(k=5;k>=2*i-1;k--) printf("*");
例如当i=1时,for(k=5;k>=1;k--) 表示k从5开始直到k等于1,这中间k要‘--’四次再加上k=5那一次的循环,一共5次,所以本行要输出5个*。
其他的循环过程都一样。

for(j=4;j>i;j--)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
因为没有括号,所以每个循环体里的语句都只有一句,就相当于这样:
for(j=4;j>i;j--)
{
printf(" ");
}
for(k=1;k<=2*i-1;k++)
{
printf("*");
}
这样应该明白了吧?