1

代码是:

#include <stdio.h>
#include <stdlib.h>

int main() {
    double C, F;
    printf("Enter the temperature in Celisius: ");
    scanf("%f", &C);
    F = 32 + (C * (180.0 / 100.0));
    printf("%f C = %f F\n", C, F);
    system("pause");
    return 0;
}

输出是:

输入Celisius的温度:100
-925596049101779740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000来

4

1 回答 1

4

double你在for那里得到了错误的转换说明符scanf()。你需要使用

  scanf("%lf", &C);

要添加相关引用,来自C11第 7.21.6.2 章

l(埃尔)

指定后面d的 , i, o, u, x, X, 或n转换说明符应用于类型指针指向long intor的参数unsigned long int;后面a的 , A, e, E, f, F, g, 或G转换说明符适用于类型指针指向的参数double;或者后面cs, 或[ 转换说明符适用于类型指针指向 的参数wchar_t

也就是说,您必须检查 的返回值scanf()以确保调用成功。否则,您最终将使用未初始化变量的值。

于 2017-03-07T06:26:55.150 回答