我的代码完美无缺。但是当我尝试调试它,因为这是我第一次使用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
答案 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