我是C的新手。我正在尝试编写一个程序来计算斜边,但是当我运行它时,我得到了垃圾值,我不知道如何处理它。
double Hypotenuse(double base, double perpendicular)
{
double hyp = sqrt((base*base) + (perpendicular*perpendicular));
return hyp;
}
int _tmain(void)
{
double b, p;
printf("Enter the lenght of base\n");
scanf_s("%f",&b);
printf("Enter the lenght of perpendicular\n");
scanf_s("%f",&p);
printf("The hypotenuse of the triangle is %3.3f",Hypotenuse(b,p));
return 0;
}
答案 0 :(得分:1)
问题出在你的scanf语句中。 作为拇指规则,你应该总是使用“%lf”来表示双打。 这非常有效:
double Hypotenuse(double base, double perpendicular)
{
double hyp = sqrt((base*base) + (perpendicular*perpendicular));
return hyp;
}
int _tmain(void)
{
double b, p;
printf("Enter the lenght of base\n");
scanf_s("%lf",&b);
printf("Enter the lenght of perpendicular\n");
scanf_s("%lf",&p);
printf("The hypotenuse of the triangle is %3.3lf",Hypotenuse(b,p));
return 0;
}
答案 1 :(得分:0)
所以,在所有scanf打印后,最好的方法是查看代码中发生了什么或者你在哪里得到垃圾 例如:
double a;
scanf("%f",&a);
printf("a=%f",a); //OR
printf("a=%3.3f",a);
您可以轻松查看问题是否在您的scanf或其他地方..