用于循环迭代的C语言

时间:2018-06-14 16:25:14

标签: c loops for-loop iteration

我已经开始学习C语言了,我正在尝试各种代码并进行实验。我写了下面的代码并期望输出为6,但输出为13.有人可以解释一下这背后的逻辑吗?感谢

#include <stdio.h>

void main() {
    int i;

    for (i = 0; i <= 3; i++) {
        i = i + 1;
        printf("%d", i);
    }
}

4 个答案:

答案 0 :(得分:2)

打印1,然后打印3。

第一次通过循环我被设置为0.然后你添加一个并打印出来。

然后循环将i递增到2(i ++)。然后你添加一个(i = 3)并打印出来。

然后循环将i递增到4并测试i <= 3并退出,因为条件不再为真。

答案 1 :(得分:2)

根本不是 '13',它是'1''3'

#include <stdio.h>

int main(int argc, char *argv[])
{
    int i;

    for (i = 0; i <= 3; i++)
    {
        i = i + 1;
        //printf("%d", i);
        printf("i = %d\n", i);
    }

    return 0;
}

代码的输出是:

i = 1
i = 3

如果您删除“i =”,并将两行合并,则只需一个字符'1''3'

请详细阅读代码。如果你仍然感到困惑,也许没有人可以帮助你。

答案 2 :(得分:1)

我认为你试图将1,2,3加起来。你的问题是你使用i作为循环索引和总数。你也加1,不知道为什么

你需要

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "popSegue" {
            let popoverViewController = segue.destination
            popoverViewController.popoverPresentationController?.delegate = self
            segue.destination.popoverPresentationController?.sourceRect = ((sender as? UIButton)?.bounds)!
        }
    }

答案 3 :(得分:1)

答案永远不会是6。

如果你想得到答案6,printf应该在循环之外。

循环将是

for(i=0;i<=3;i++)
{
  a=a+i;
}

你必须打印一个答案。

您的计划说明

首先会打印1,因为i = 0然后i的值增加1倍(循环条件为1.在循环语句中为2.)因此我将为2.所以下一个输出为3,然后再次增加1倍,然后i = 4,循环将停止。

所以这个程序的输出是13。