该程序只是在用户输入行数时创建菱形的形状,因此它有 6 个 for 循环; 3 个循环创建第一个三角形,3 个循环创建另一个三角形,通过这 2 个三角形和 6 个循环,我们得到了一个菱形,这是整个程序的图像:
我对第 5 个 for 循环有点困惑,该循环为第二个三角形创建空间,循环从添加第一个空间开始,然后循环结束,程序继续到第 6 个循环并返回到第 4 个循环完成第 5 个和第 6 个循环,这 5 个循环每次都添加 1,2,3,.. 空格,我们可以从:spaces++
中看到,问题是这是怎么回事在职的?计数器 c 也每次都变高,c++
,因此(空格和 c)之间的差异每次仍然为 1,因此对于那些理解的人来说,它假设每次只添加一个空格我在说什么你能帮我解释一下吗
int n, c, k, space = 1;
printf("Enter number of rows\n");
scanf("%d", &n);
space = n - 1;
for (k = 1; k <= n; k++)
{
for (c = 1; c <= space; c++)
printf(" ");
space--;
for (c = 1; c <= 2*k-1; c++)
printf("*");
printf("\n");
}
space = 1;
for (k = 1; k <= n - 1; k++)
{
for (c = 1; c <= space; c++)
printf(" ");
space++;
for (c = 1 ; c <= 2*(n-k)-1; c++)
printf("*");
printf("\n");
}
最佳答案
the counter c is also getting higher every time, c++, so the difference between(space and c) will still be 1 every time
不,space++
不是递增 c 的循环的一部分。该循环打印 space
空格;完成后,空格会增加,因此下次会再打印 1 个空格。
关于c - 具有 `for` 循环的菱形输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20671740/