我怎么能处理垃圾?

时间:2014-03-02 23:36:13

标签: c

我是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;
}

2 个答案:

答案 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或其他地方..