-1

誰かがこのプログラムを実行するのを手伝ってくれますか? 私はこれを試しました:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void) {
    double Cateto1;
    double Cateto2;
    double hipotenusa;

    printf("dame el primer cateto: ");
    scanf("%1f", Cateto1);
    fflush(stdout);

    printf("dame el segundo cateto: ");
    scanf("%1f", &Cateto2);
    fflush(stdout);

    hipotenusa = sqrt ((Cateto1*Cateto1)+(Cateto2*Cateto2));

    printf("hipotenusa= %2f",hipotenusa);
    system("pause");
}

ビルドできますが、実行できません...次のようになります。

RUN FAILED (終了値 -1.073.741.790、合計時間: 17 秒)

4

6 に答える 6

11
scanf("%lf", Cateto1);
        ↑    ↑
        |    You are missing a '&' character here
        The width specifier for doubles is l, not 1

scanf の最初の引数"%lf"は、対応する出力変数が float ではなく double へのポインターであることを指定するために (文字 L として) なければなりません。'1'(1) scanf では意味がありません。

ここでの scanf の 2 番目の引数は double へのポインターであると想定されており、代わりに double を指定しています。
2回目で正解したので単純なタイプミスだと思います。

于 2013-10-10T13:47:32.087 に答える
2

ここに間違いがあります:

scanf("%1f", Cateto1);

次のように変更します。

scanf("%1f", &Cateto1);
于 2013-10-10T13:49:53.877 に答える
0
             #include <stdio.h>

             #include <math.h>

            int main(void) 
            {

               double Cateto1;

               double Cateto2;

               double hipotenusa;

               printf("dame el primer cateto: ");

               scanf("%lf", &Cateto1);

               //fflush(stdout);

               printf("dame el segundo cateto: ");

               scanf("%lf", &Cateto2);

               //fflush(stdout);

               hipotenusa = sqrt ((Cateto1*Cateto1)+(Cateto2*Cateto2));

               printf("hipotenusa= %2f\n",hipotenusa);

               //system("pause");

               return 0;

         }
于 2013-10-10T16:35:06.777 に答える
0

There are a couple of errors:

  • The syntax of the scanf expression was wrong: "%1f" should be "%lf"
  • You need to pass the address of Cateto1 (&Cateto1) to scanf
  • You don't need the fflush
  • You don't need the system call

Here's the updated code:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void) {
    double Cateto1;
    double Cateto2;
    double hipotenusa;

    printf("dame el primer cateto: ");
    scanf("%lf", &Cateto1);

    printf("dame el segundo cateto: ");
    scanf("%lf", &Cateto2);

    hipotenusa = sqrt ((Cateto1*Cateto1)+(Cateto2*Cateto2));

    printf("hipotenusa= %2f\n",hipotenusa);
}
于 2013-10-10T13:50:18.623 に答える
0

コードにエラーがあります。それ以外の

scanf("%1f", Cateto1);

あなたは書くべきです:

scanf("%1f", &Cateto1);
于 2013-10-10T13:51:26.270 に答える
0

単純な間違い

scanf("%1f", &Cateto1); // '&' was missing in all scanf statements
于 2013-10-10T13:51:26.370 に答える