6

こんにちは、みんな!私は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
$

どうしたの?

4

5 に答える 5

5

この部分を変更 ->

 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);
于 2013-07-07T14:03:59.507 に答える
3

すべての scanfs は、変数をより低く読み取ります。

scanf("%d", &lower);

これは、コードのセクションをコピーして貼り付ける場合に非常に一般的です。C へようこそ。私たちと同じように C を気に入っていただけることを願っています。

于 2013-07-07T14:04:32.117 に答える
2

あなたは&lower3回持っています。scanfであることを確認してくださいlowerupperstep

于 2013-07-07T14:03:43.660 に答える