使用循环添加整数

时间:2012-12-12 15:33:26

标签: c

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

int main() {
    int i,int1=0, int2=0;
    for (i = 0; i<10; i++) {
        int1 = (int2 + 2);
        int2 = int1;
    }
}

程序必须与ANSI C内联,我相信使用:

int1 = (int2 + 2);

是未定义的行为,因为编译器无法保证首先处理哪个“相同”变量。 (如果我错了,请纠正我!)这就是为什么我采取了更长的方式,但应用程序使用任何一种方式都失败了。

这次失败的原因是什么?

3 个答案:

答案 0 :(得分:5)

您的程序没有失败,您只是忘记了程序结束时return 0;,表明您的程序运行正常。

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

答案 1 :(得分:3)

你的代码看起来很好......但是关于你的“失败”评论:

In my compiler I am told that the build is successful, when the application then runs it says RUN FAILED (exit value 3, total time: 292ms

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

int main()

说“我是一个名为main的函数,我没有参数,我返回一个int”,但是你的程序没有返回任何东西。尝试添加一个return语句:

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
}

答案 2 :(得分:1)

你有

int1 = (int2 + 2);

 int1 = (int1 + 2);