3

私は自分の問題に似た質問を検索しました。同様の問題。しかし、私の問題は、TurboCコンパイラv3.0を使用する場合です。math.hファイルに対して追加の作業を行う必要がありますか?助けてください。

int main (void){
    double result, a;
    clrscr();
    printf("Enter a # for square root.\n");
    scanf("%f",&a);
    printf("a = %f\n",a);
    result = sqrt(a);
    printf("a = %f  and square root is %f\n",a, result);
    getch();
    return 0;
    }

出力は次のようになります。

平方根の#を入力します。

64

a = 0.000000

a = 0.000000、平方根は0.000000です

4

4 に答える 4

4

の場合scanf()%fはのですfloat。あなたはのために使用する必要があり%lfますdouble

printf("Enter a # for square root.\n");
scanf("%lf",&a);

これは、printf()type-promotion%fをとの両方に使用floatできる場合とは対照的doubleです。

于 2012-01-29T07:55:04.870 に答える
2

これを試して :

   scanf("%lf",&a);

または、変数aをfloatに変更します。

 float a;
于 2012-01-29T07:54:59.627 に答える
2

"%lf"フォーマットとして使用することに加えてscanf、あなたは持っている必要があります

#include <stdio.h>
#include <math.h>
#include <conio.h> /* I think */

最後の1つは、clrscr()およびgetch()呼び出し用です。それらは非標準ですが、で宣言されていると思い<conio.h>ます。

がない場合、コンパイラは、がではなく結果を返す#include <math.h>と想定します。sqrt()intdouble

(余談ですが、なぜ電話をかけるclrscr()のですか?他のことをする前に画面をクリアすることの利点は何ですか?getch()電話も厳密には必要ありませんが、一部のシステムでは、プログラムを実行するデフォルトの方法では、ウィンドウがすぐに閉じられます終了します。)

于 2012-01-29T09:47:27.137 に答える
0

afloatで変数を宣言resultし、doubleで変数を宣言し、math.hヘッダーファイルを使用します。
そして、入力を取得する("%f", &a);ために入力を取得するために使用し
、次に、結果をフォーマットでresult = sqrt(a);
印刷します 。ターボcで完全に機能します。"%lf"

于 2022-01-29T03:02:29.580 に答える