Persi111 2023-05-24 09:14 采纳率: 85.7%
浏览 14
已结题

能跑得起来,但是结果不对,所有的“点在圆内”的情况都被算成了“点在圆上”,这是为什么呢?


#include <iostream>
#include<string>;
using namespace std;

class point
{
private:
    double x;
    double y;
public:
    void cinX(double a) {
        x = a;
    }
    double getX() {
        double a = x;
        return a;
    }
    void cinY(double b) {
        y = b;
    }
    double getY() {
        double a = y;
        return a;
    }
};

class circle {
private:
    double rX;
    double rY;
    double r;
public:
    void cinrX(double a) {
        rX = a;
    }
    double getrX() {
        double x = rX;
        return x;
    }
    void cinrY(double a) {
        rY = a;
    }
    double getrY() {
        double a = rY;
        return a;
    }
    void cinr(double a) {
        r = a;
    }
    double getr() {
        double a = r;
        return a;
    }
};
double getDistance(point p, circle c) {
    double d = sqrt((p.getX() - c.getrX()) * (p.getX() - c.getrX()) + (p.getY() - c.getrY()) * (p.getY() - c.getrY()));
    return d;
}
int main()
{
    point p1;
    p1.cinX(2);
    p1.cinY(2);
    circle c1;
    c1.cinrX(4);
    c1.cinrY(5);
    c1.cinr(30);
    double d = getDistance(p1, c1);
    cout << "d = " << d << endl;
    if (d > c1.getr())
    {
        cout << "点在圆外" << endl;
        return 0;
    }
    else {
        if (d = c1.getr()) {
            cout << "点在圆上" << endl;
            return 0;
        }
        else
            cout << "点在圆内" << endl;
    }
}
  • 写回答

2条回答 默认 最新

  • qq_53090785 2023-05-24 09:20
    关注

    点在圆上判断有问题,应该是==

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月1日
  • 已采纳回答 5月24日
  • 创建了问题 5月24日

悬赏问题

  • ¥15 delphi开发的WEBSERVER改用HTTPS协议
  • ¥15 pic16f877A单片机的计数器proteus仿真失效
  • ¥100 调查 Vitis AI 中验证 .xmodel 量化后的正确性
  • ¥30 codelite全屏时file、setting那一行消失了
  • ¥15 gazebo-rviz教程
  • ¥15 付费求做一个自助抢单插件
  • ¥15 bat批处理,关于数据复制问题
  • ¥50 同步两个不同结果的array中某些属性
  • ¥15 悬赏15远程操控解决问题
  • ¥15 CST复制的模型无法单独修改参数?