为什么我的代码只产生0.000000结果?

时间:2017-11-11 06:13:29

标签: c printf double

这是我正在使用的代码,

#include <stdio.h>
int main () {
    /* variable definition: */
    double sidea, sideb, sidec;
    /* Prompt user for side a */
    printf("Enter length of side a of the triangle: \n"); // Input the base
    scanf("%f", &sidea);
    /* Prompt user for side b */
    printf("Enter the length of side b of the triangle: \n"); // Input the base
    scanf("%f", &sideb);
    /* Prompt user for side c */
    printf("Enter the length of side c of the triangle \n");
    scanf("%f", &sidec);
    // Calculate the Perimeter
    double perimeter=  (sidea + sideb + sidec);
    // Print the result
    printf("The perimeter is : %f \n", perimeter);
    return 0;
}

输入数据: 4.6 7.5 5.8

我不能为我的生活找出为什么用于输入的任何值导致0.000000。使用float似乎工作正常。我错过了什么谢谢!

1 个答案:

答案 0 :(得分:1)

使用%lf格式说明符读取double。

另外,您可能会注意到使用错误的格式说明符是UB。(未定义的行为)。