试图用C运行程序

时间:2013-10-10 13:44:15

标签: c

有人可以帮我运行这个程序吗?我试过这个:

#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秒)

6 个答案:

答案 0 :(得分:12)

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

scanf的第一个参数必须是"%lf"(作为字母L),以指定相应的输出变量是指向double而不是float的指针。 '1'(一)对scanf没有意义。

这里scanf的第二个参数应该是一个指向double的指针,而你要给它一个双倍的颜色。
我想这是一个简单的拼写错误,因为你第二次做对了。

答案 1 :(得分:2)

这是错误:

scanf("%1f", Cateto1);

将其更改为:

scanf("%1f", &Cateto1);

答案 2 :(得分:0)

您的代码中存在错误。而不是

scanf("%1f", Cateto1);

你应该写:

scanf("%1f", &Cateto1);

答案 3 :(得分:0)

简单错误

scanf("%1f", &Cateto1); // '&' was missing in all scanf statements

答案 4 :(得分: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;

         }

答案 5 :(得分:-1)

有几个错误:

  • scanf表达式的语法错误:“%1f”应为“%lf”
  • 您需要将Cateto1&Cateto1)的地址传递给scanf
  • 您不需要fflush
  • 您不需要system来电

这是更新后的代码:

#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);
}