我已经开始学习C语言了,我正在尝试各种代码并进行实验。我写了下面的代码并期望输出为6,但输出为13.有人可以解释一下这背后的逻辑吗?感谢
#include <stdio.h>
void main() {
int i;
for (i = 0; i <= 3; i++) {
i = i + 1;
printf("%d", i);
}
}
答案 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。