我的导师要求我们通过此代码跟踪变量,并确定变量何时发生变化。他说输入应该是
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);
}
答案 0 :(得分:4)
在
if (c = 0)
您 0
分配给c
,分配的表达式会返回分配值,因此表达式将为总是评估为false,因为它等同于if(0)
,它应该是if(c == 0)
。
另外
if (c == c + 1)
没有任何意义,你究竟是什么意思?我认为它应该是c > 0
。
在所有情况下,您都应该使用调试器,它可以为您节省大量时间,并且可以帮助您真正理解您的代码。