代码中没有错误,但是当你调试时,我收到一个错误(Eclipse Luna)

时间:2015-07-26 06:59:02

标签: c eclipse

我的代码完美无缺。但是当我尝试调试它,因为这是我第一次使用Luna Eclipse并且想要了解调试过程是如何工作的,它给我一个错误说

  

*停止,原因= “最终步进范围”,帧= {ADDR = “0x00401479”,FUNC = “主”,ARGS = [],FILE = “.. \ SRC \ Assignment1A.c”,全名= “C:\用户\ Sunghee \ workspace2 \ Assignment1A \ SRC \ Assignment1A.c”,行= “37”},线程ID = “1”,停止线程= “所有”

我不明白这一点,因为它在我运行它时效果很好。错误来自我的第一个if语句

printf("\n%d + %d =%d", num1, num2, ans);
if (num2 > 0) {
    printf("\n%d / %d = %d", num1, num2, num1 / num2);
    printf("\n%d %% %d = %d", num1, num2, num1 % num2);
}
else {
    printf("\n%d /%d is not allowed", num1, num2);
}

谁能告诉我为什么?我已经研究了它,但所有我不理解的术语......对我来说都不起作用:p谢谢!

当我运行它时,它在Eclipse中工作。当我逐行调试时,错误发生在上述一行之后。 完整代码:

包括

包括

int main() {     int num1; //用户输入的第一个数字     int num2; //用户输入的第二个数字     int ans; //存储数学结果的变量

setbuf(stdout, 0);

printf("Please enter the first integer:\n");
scanf("%d", &num1);

printf("Please enter the second integer:\n");
scanf("%d", &num2);

ans = num1 + num2;
printf("\n%d + %d =%d", num1, num2, ans);
if (num2 > 0) {
    printf("\n%d / %d = %d", num1, num2, num1 / num2);
    printf("\n%d %% %d = %d", num1, num2, num1 % num2);
}

else {
    printf("\n%d /%d is not allowed", num1, num2);
    printf("\n%d %% %d is not allowed", num1, num2);
}

printf("\nThe average of %d and %d is %d", num1, num2, (num1+num2)/2);

return 0;

}

所以,如果有人可以提供帮助,请做!正如我所说,运行时没有问题。但是我想知道为什么在调试它时会出现错误。出于好奇心的缘故:D

1 个答案:

答案 0 :(得分:0)

以下代码对我来说非常合适。我认为它与初始化变量的方式有关。如果可能,请求您分享整个代码。

#include <stdio.h>

int main(void) { 

    int num1 = 1,num2 =2,num3 = 3,ans =0;

    printf("\n%d + %d =%d", num1, num2, ans);
if (num2 > 0) {
    printf("\n%d / %d = %d", num1, num2, num1 / num2);
    printf("\n%d %% %d = %d", num1, num2, num1 % num2);
}
else {
    printf("\n%d /%d is not allowed", num1, num2);
}
    return 0;
}

结果

1 + 2 =0
1 / 2 = 0
1 % 2 = 1