请解释以下C代码?

时间:2016-06-06 06:54:24

标签: c for-loop

当我编译并运行下面显示的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

如果有人能告诉我为什么以下输入会产生上述输出,那么我们将非常感激。

2 个答案:

答案 0 :(得分:0)

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

如果您将这样的问题分解为模块,这会有所帮助:

1)按顺序执行步骤2a和2b,j = 0, 2, 4

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中完成。

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

答案 1 :(得分:0)

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

enter image description here