【C言語】double型の変数にscanf関数で入力する方法

目次から探す

scanf関数を使ったdouble型変数への入力方法

C言語では、scanf関数を使ってユーザーからの入力を受け取ることができます。

double型の変数に対しても、scanf関数を使用することで値を入力することができます。

#include <stdio.h>
int main() {
    double num;
    printf("数値を入力してください: ");
    scanf("%lf", &num);
    printf("入力された数値は %lf です\n", num);
    return 0;
}

上記のコードでは、double型変数numに対してscanf関数を使って値を入力しています。

%lfは、double型の値を入力するためのフォーマット指定子です。

入力された値は&numを使って変数に格納されます。

入力時の注意点

入力値の範囲について

double型は浮動小数点数を表すため、非常に広い範囲の値を扱うことができます。

しかし、入力時には値の範囲に注意する必要があります。

例えば、以下のようなコードを考えてみましょう。

#include <stdio.h>
int main() {
    double num;
    printf("数値を入力してください: ");
    scanf("%lf", &num);
    if (num > 100.0) {
        printf("入力された数値は100より大きいです\n");
    } else {
        printf("入力された数値は100以下です\n");
    }
    return 0;
}

このコードでは、入力された値が100より大きいかどうかを判定しています。

入力された値がdouble型の範囲を超える場合、予期しない結果が得られる可能性があります。

そのため、入力時には値の範囲に注意し、適切な制約を設ける必要があります。

入力エラーの処理について

scanf関数は、入力値の型がフォーマット指定子と一致しない場合や、入力エラーが発生した場合にエラーを返します。

これにより、入力エラーが発生した場合に適切な処理を行うことができます。

以下のコードを考えてみましょう。

#include <stdio.h>
int main() {
    double num;
    printf("数値を入力してください: ");
    if (scanf("%lf", &num) != 1) {
        printf("入力エラーが発生しました\n");
        return 1;
    }
    printf("入力された数値は %lf です\n", num);
    return 0;
}

このコードでは、scanf関数の戻り値をチェックしています。

戻り値が1でない場合、つまり入力エラーが発生した場合にはエラーメッセージを表示し、プログラムを終了しています。

入力時の注意点として、入力エラーの処理を適切に行うことが重要です。

ユーザーが予期しない入力を行った場合にも、プログラムが正しく動作するようにするためです。

適切な入力制約やエラー処理を行うことで、安全かつ正確な入力を実現することができます。

目次から探す