【问题标题】:Please explain the following C code? [closed]请解释下面的C代码? [关闭]
【发布时间】:2016-10-05 16:40:09
【问题描述】:

当我编译并运行如下所示的 C 代码时,它会生成以下内容:

输入:

#include <stdio.h>

int main()
{
    int i, j;
    int a, b;

    for (j = 0; j <= 4; j+=2)
    {
        a = j;
        b = 0;

        for (i = 0; i <= 4; i++)
        {
            b += 2 * a * i;
        }

        printf("%d %d\n", a, b);
   }

}

输出:

0 0

2 40

4 80

如果有人能告诉我为什么以下输入会生成上述输出,我们将不胜感激。

【问题讨论】:

  • 具体哪一部分不明白?
  • 你有什么不明白的?另请参阅How to Ask
  • 您熟悉哪种语言,以便有相关背景的人解释一下?

标签: c for-loop


【解决方案1】:

希望你通过我绘制的简单跟踪表理解它。

【讨论】:

    【解决方案2】:

    这似乎是一个显示算术和printf 语句的基本 C 示例。

    如果你把这样的问题分解成模块会很有帮助:

    1) 使用j = 0, 2, 4,依次执行步骤 2a 和 2b:

    for (j = 0; j <= 4; j+=2)
    

    2a) 对于 j 的每个索引,b = b + 2 * j * i(此处为 a = j)

    for (i = 0; i <= 4; i++)
    {
        b += 2 * a * i;
    }
    

    2b) printf("%d %d\n", a, b) 只是打印出 j 的值(因为 a 被分配了 j 的值)和 b,其中计算在步骤 2a 中完成。

    下次尝试给出您感到困惑的确切区域。在聊天中解释这样的事情并不容易。你必须自己分解它。

    【讨论】:

      猜你喜欢
      • 2015-01-06
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多