C 使用循环添加整数

C 使用循环添加整数,c,C,我正在为我的大学课程写一份C语言的申请书。在我的应用程序的一部分中,我迭代地增加一个整数。使用printf语句,我可以看出int1应该增加到20,但运行失败。我想知道为什么会这样 int main() { int i,int1=0, int2=0; for (i = 0; i<10; i++) { int1 = (int2 + 2); int2 = int1; } } 是未定义的行为,因为编译器无法保证先处理哪个“相同”变量。如果我

我正在为我的大学课程写一份C语言的申请书。在我的应用程序的一部分中,我迭代地增加一个整数。使用printf语句,我可以看出int1应该增加到20,但运行失败。我想知道为什么会这样

int main() {
    int i,int1=0, int2=0;
    for (i = 0; i<10; i++) {
        int1 = (int2 + 2);
        int2 = int1;
    }
}
是未定义的行为,因为编译器无法保证先处理哪个“相同”变量。如果我错了,请纠正我!这就是为什么我选择了更长的方法,但应用程序无论采用哪种方法都会失败

这失败的原因是什么

你有

int1 = (int2 + 2);
不是


你的程序没有失败,你只是忘记了返回0;在程序结束时,指示程序运行正确


至于未定义的行为:不,这是完全有效的C代码。

您的代码看起来运行良好。。。但是关于你的失败评论:


在我的编译器中,我被告知构建是成功的,当应用程序运行时,它会显示runfailed exit值3,总时间:292ms

您的程序应该返回一个值:

int main()
说我是一个名为main的函数,我不接受任何参数,我返回一个int,但是你的程序不返回任何东西。尝试添加返回语句:

int main() {
    int i,int1=0, int2=0;
    for (i = 0; i<10; i++) {
        int1 = (int2 + 2);
        int2 = int1;
    }
    return 0; // Note: a '0' return is normally success
}

运行失败这意味着什么?在我的编译器中,我被告知构建成功,当应用程序运行时,它显示运行失败退出值3,总时间:292ms。如果我在循环后包含printf语句,它会通知我值是20,然后说同样的话;最后。您也没有main的标准args值。是的,您是对的。那么,我的申请中的问题一定在别处。我为浪费您的时间而道歉。@DanMc这没问题,StackOverflow是一个您可以提问的平台,您不会浪费任何人的时间。你怎么说问题一定在别处?如果您的程序有其他问题,欢迎使用。我试图快速从应用程序中取出代码片段,将其简化,并将其放入一个主函数中运行。在这样做时,我忘记了返回声明,对不起:!
int main()
int main() {
    int i,int1=0, int2=0;
    for (i = 0; i<10; i++) {
        int1 = (int2 + 2);
        int2 = int1;
    }
    return 0; // Note: a '0' return is normally success
}