大家好!我正在尝试学习C语言并遇到麻烦:
书中的示例代码可以正常工作:
#include <stdio.h>
/* ?????? ??????? ?????????? ?? ??????????
? ??????? ??? fahr = 0, 20, ..., 300 */
main()
{
int fahr, celsius;
int lower, upper, step;
lower = 0; /* ?????? ??????? ??????? ?????????? */
upper = 300; /* ??????? ??????? */
step = 20; /* ??? */
fahr = lower;
while (fahr <= upper) {
celsius = 5 * (fahr-32) / 9;
printf("%d\t%d\n", fahr, celsius);
fahr = fahr + step;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
0 -17
20 -6
40 4
60 15
80 26
100 37
120 48
140 60
160 71
180 82
200 93
220 104
240 115
260 126
280 137
300 148
但是我写的代码没有做任何事情!:
#include <stdio.h>
main() {
int fahr, celsius, lower, upper, step;
printf("Enter lower temperature:");
scanf("%d", &lower);
printf("Enter upper limit:");
scanf("%d", &lower);
printf("Enter step:");
scanf("%d", &lower);
fahr = lower;
while (fahr <= upper) {
celsius = 5 * (fahr-32) / 9;
printf("%d\t%d\n", fahr, celsius);
fahr = fahr + step;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
$ gcc fahr.c -o fahr.out
$ ./fahr.out
输入较低温度:0
输入上限:300
输入步骤:20
$
怎么了?
小智 5
改变这一部分 - >
printf("Enter upper limit:");
scanf("%d", &lower);
printf("Enter step:");
scanf("%d", &lower);
Run Code Online (Sandbox Code Playgroud)
至
printf("Enter upper limit:");
scanf("%d", &upper);
printf("Enter step:");
scanf("%d", &step);
Run Code Online (Sandbox Code Playgroud)
所有的 scanfs 都会读取变量 lower 。
scanf("%d", &lower);
Run Code Online (Sandbox Code Playgroud)
当您复制并粘贴代码段时,这是非常典型的。欢迎来到 C,我们希望您和我们其他人一样喜欢它。