有人可以帮我运行这个程序吗?我试过这个:
#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秒)
答案 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);
}