圆的面积 使用笛卡尔平面上的点

Posted

技术标签:

【中文标题】圆的面积 使用笛卡尔平面上的点【英文标题】:Area of a circle Using points from a cartesian plane 【发布时间】:2017-05-07 12:44:17 【问题描述】:

我有以下代码,说明在此函数中未初始化使用“距离”。

这是一个代码,它接受来自笛卡尔平面的两个坐标,并使用它们之间的距离作为半径来找到圆的面积。这是代码

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

struct Point 
    int x, y;
;


double getDistance(struct Point a, struct Point b)

    double distance;
    distance = sqrt((a.x - b.x) * (a.x - b.x) + (a.y-b.y) *(a.y-b.y));
    return distance;




int main()

    float Area;
    double distance;
    struct Point a, b;
    printf("Enter coordinate of point a: ");
    scanf("%d %d", &a.x, &a.y);
    printf("Enter coordinate of point b: ");
    scanf("%d %d", &b.x, &b.y);
    printf("Distance between a and b: %lf\n", getDistance(a, b));

    Area= 3.14 * distance * distance;
    printf("\nArea of Circle : %f", Area);


    return 0;

【问题讨论】:

这应该是 C 还是 C++?实际的错误信息是什么,包括文件名和行号? getDistance()中的变量distance在不同的范围内,因此与main()中的变量distance完全无关。 当然可以。查看main 函数。您声明了一个名为distance 的变量,但从不初始化它。然后,你做Area= 3.14 * distance * distance; Oops。 【参考方案1】:

这是正确的:getDistance 中的变量distancemain 中的变量distance 是两个不同的变量。

当你写这篇文章时

printf("Distance between a and b: %lf\n", getDistance(a, b));

distance 内部 main 未设置。

您可以通过添加作业来修复它

distance = getDistance(a, b);
printf("Distance between a and b: %lf\n", distance);

实现说明:由于您需要距离平方,您可以通过定义函数getDistanceSquared 并使用它来避免取平方根。

【讨论】:

【参考方案2】:

您应该更仔细地阅读编译器警告,因为它在您的main 函数中引用变量distance 而不是getDistance 中的变量。

我想,你真正想做的是:

distance = getDistance(a, b);
printf("Distance between a and b: %lf\n", distance);

然后,您可以在 main 函数的任何位置使用 getDistance 的结果。 ;)

【讨论】:

【参考方案3】:

您忘记分配 distance 变量,尝试类似:

int main()

  float Area;
  double distance;
  struct Point a, b;
  printf("Enter coordinate of point a: ");
  scanf("%d %d", &a.x, &a.y);
  printf("Enter coordinate of point b: ");
  scanf("%d %d", &b.x, &b.y);
  distance = getDistance(a, b);
  printf("Distance between a and b: %lf\n", distance);

  Area= 3.14 * distance * distance;
  printf("\nArea of Circle : %f", Area);


  return 0;

【讨论】:

以上是关于圆的面积 使用笛卡尔平面上的点的主要内容,如果未能解决你的问题,请参考以下文章

2. 分段函数的面积与高度

计算地球表面任意多边形包围的面积

如何通过坐标给定的点来识别可变大小的区域?

使用从笛卡尔空间和世界文件生成的纬度和经度计算多边形面积

平面上圆的凸包算法

在平面上的世界空间单元中查找一个 (s, t) 纹理坐标单元的长度