【解決方法】出力が float でゼロになるのはなぜですか?

プログラミングQA


C++
#include<stdio.h>
int main()
{
    float num1,num2;
    printf("Enter 1,2 float: ");
    scanf("%.2f %.2f",&num1, &num2);
    printf("Result:%.2f %.2f\n",num1,num2);
    return 0;
}

私が試したこと:

入力に関係なく、出力は 0.00 です。 inout で与えた出力が見つからないのはなぜですか?.in コードブロックで試してみました。

解決策 1

読み取られる数値に幅や精度の値を指定することはできません。 の scanf この関数は、数値を構成するすべての有効な文字 (数字と小数点) を読み取り、それを適切な型に変換しようとします。 だから、あなたのものを変えてください scanf 行先:

C++
scanf("%f %f",&num1, &num2);

解決策 2

精度指定子 (%.2f) は、float 値を表示するときに小数点以下の桁数を制御するために、’scanf’ の代わりに ‘printf’ 関数で使用されます。
たとえば、%10.4f は合計 10 文字以上の数値を表示し、そのうち 4 桁は小数点以下です。

解決策 3

ドキュメントもご覧ください。 関数 scanf – cppreference[^]。

コメント

タイトルとURLをコピーしました