繁体   English   中英

C简单的程序不起作用

[英]C simple program doesn't work

大家好! 我正在尝试学习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;
    }
}

输出:

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;
    }
}

输出:

$ gcc fahr.c -o fahr.out
$ ./fahr.out
输入较低温度:0
输入上限:300
输入步骤:20
$

怎么了?

改变这一部分 - >

 printf("Enter upper limit:");
    scanf("%d", &lower);

    printf("Enter step:");
    scanf("%d", &lower);

 printf("Enter upper limit:");
    scanf("%d", &upper);

    printf("Enter step:");
    scanf("%d", &step);

所有scanfs都读取较低的变量。

scanf("%d", &lower);

当您复制和粘贴代码段时,这是非常典型的。 欢迎来到C,我们希望你和我们其他人一样爱上它。

你有&lower三倍。 检查你的scanf它应该是lowerupperstep

你的代码

 printf("Enter upper limit:");
    scanf("%d", &lower);

它应该是

 printf("Enter upper limit:");
scanf("%d", &upper);

和类似的

printf("Enter step:");
scanf("%d", &step);

这里存在错误:

printf("Enter upper limit:");
scanf("%d", &lower);
printf("Enter step:");
scanf("%d", &lower);

将scanf更改为以下代码:

scanf("%d", &upper);
scanf("%d", &step);

如果您想避免这些错误,请不要复制粘贴代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM