c - 具有 `for` 循环的菱形输出

标签 c loops

该程序只是在用户输入行数时创建菱形的形状,因此它有 6 个 for 循环; 3 个循环创建第一个三角形,3 个循环创建另一个三角形,通过这 2 个三角形和 6 个循环,我们得到了一个菱形,这是整个程序的图像:

Image

我对第 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/

相关文章:

android - 我想让一个倒数计时器在 android 中连续循环 - 需要关于如何做的意见

python - 在循环中如何创建不同的变量名?

在循环内定义的 Java 变量似乎在循环外无法识别?

javascript - 将增量计数器连接到 json 响应循环内的数组选择器的末尾

c - STM32L072KBU 从应用程序代码跳转到引导加载程序(系统内存)

c - FreeBSD 上的 sem_wait 中断信号

c - malloc 不适用于 double 类型数组

c - 在 C 中评估赋值运算符的左操作数有什么意义?

java - 使用基本技术生成 10 个不重复的随机数

c - 如何从 web 脚本操作 iptables 规则