我的导师要求我们通过这段代码跟踪变量并确定变量何时发生变化。他说输入应该是
8, 4, 2, 1
我已经编译并运行了我理解的代码,但它并没有停止。它只是一遍又一遍地输出“请给我两个数字:”。任何帮助是极大的赞赏。
#include <stdio.h>
main ()
{
int a;
int b;
int c=0;
int d=0;
int e=0;
int f=0;
while (c == 0 || a + b !=0){
printf("Feed me two numbers please: \n");
scanf ("%d %d", &a, &b);
if (c == c + 1){
printf("Welcome to my world!\n\n");
}
if (c = 0){
d = a + b;
e = d;
}
else if (a + b > d){
d = a + b;
}
else if (a + b < e){
e = a + b;
}
if (a < f){
f=a;
}
c = c + 1;
}
printf("Now hear this:%d %d\n\n", d, e, f);
}
最佳答案
在
if (c = 0)
您正在分配 0
给c
,分配的表达式返回分配的值,所以表达式将总是评估为 false,因为它等同于 if(0)
,它应该是 if(c == 0)
。
还有
if (c == c + 1)
没有任何意义,你到底是什么意思?我认为应该是 c > 0
。
在任何情况下,您都应该使用调试器,它可以为您节省大量时间,并帮助您真正理解您的代码。
关于c - 为什么这个程序不停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28504331/