0

プログラムに小数を入力しようとしていますが、別の出力が得られます。%5.2f、float、および double を使用しましたが、まだ機能しません。円の直径、面積、円周を計算したいのですが、出力が異なります。

#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<ctype.h>

int main(int argc, char**argv)
{
    double radius;
    double pi = 3.14;
    double diameter;
    double area;
    double circumference;

    printf("\t\tEnter value for radius: ");
    scanf_s("%5.2f", &radius);
    printf("radius is %5.2f", radius);

    diameter = radius*2;
    area = pi*(radius*radius);
    circumference = 2*(pi*radius);

    printf("\n\t\tThe diameter of the circle is %d \n", diameter);
    printf("\t\tArea: %d", area);
    printf("\t\tCircumference: %d", circumference);
    getch();
    return 0;
}

私の間違いを教えてください。また、数学定数を持つために M_PI を使用しようとしましたが、うまくいきません。

4

1 に答える 1

1

a の正しい入力書式指定子double%lf(または%lgまたは%le) です。

scanf_s("%lf", &radius);

もう一度印刷するときは、必要に応じてフォーマットできます。

printf("radius is %5.2f", radius);
于 2013-07-18T06:56:38.600 に答える