c++-运行不成功,这是求点到直线的 距离

问题描述

运行不成功,这是求点到直线的 距离

#include"iostream.h"
#include"math.h"

class line;
class point()
{
private:
double x,y;
public:
point (double x1,double y1)
{
x=x1;
y=y1;

}
friend double dist(point,line);

};

class line()
{
private:
double a,b,c;
public:
line(double a1,double b1,double c1)
{
a=a1;
b=b1;
c=c1;
}
friend double dist(point,line);
};

double dist(point p1,point p2)
{
double d,d1,d2;
d1=p2.a*p1.x+p2.b*p1.y+p2.c;
d2=sqrt(p2.a*p2.a+p2.b*p2.b);
d=fabs(d1/d2);
return d;

}

void main()
{
point p1(4,5);
line p2(1,2,4);
cout<<dist(p1,p2)<<endl;

}

解决方案

1:类point,line声明时后面有括号吗?
2:函数dist实现时第2个参数类型是line,不是point
3:建议传递类,结构等类型的参数时使用引用(&)。
愚见,你试试。

解决方案二:

我就改通了lz的程序,至于逻辑对不对我没有仔细看

 #include"iostream.h"
#include"math.h"
class line;
class point
{
private:
    double x,y;
public:
    point (double x1,double y1)
    {
        x=x1;
        y=y1;
    }
    double getX()
    {
        return x;
    }
    double getY()
    {
        return y;
    }
    friend double dist(point,line);
};
class line
{
private:
    double a,b,c;
public:
    line(double a1,double b1,double c1)
    {
        a=a1;
        b=b1;
        c=c1;
    }
    double getA()
    {
        return a;
    }
    double getB()
    {
        return b;
    }
    double getC()
    {
        return c;
    }
    friend double dist(point,line);
};
double dist(point *p1,line *p2)
{
    double d,d1,d2;
    d1=p2->getA()*p1->getX()+p2->getB()*p1->getY()+p2->getC();
    d2=sqrt(p2->getA()*p2->getA()+p2->getB()*p2->getB());
    d=fabs(d1/d2);
    return d;
}
int main()
{
    point *p1 = new point(4,5);
    line *p2 = new line(1,2,4);
    cout<<dist(p1,p2)<<endl;
    return 0;
}

解决方案三:

求点到直线的距离
点到直线的距离
arengine 点到直线的距离

解决方案四:

没有这么复杂吧楼上。。。

解决方案五:

#include"iostream.h"
#include"math.h"
class line;
class point
{
private:
double x,y;
public:
point (double x1,double y1)
{
x=x1;
y=y1;
}

double getX()
{
return x;
}

double getY()
{
return y;
}
friend double dist(point,line);
};
class line
{
private:
double a,b,c;
public:
line(double a1,double b1,double c1)
{
a=a1;
b=b1;
c=c1;
}
double getA()
{
return a;
}
double getB()
{
return b;
}
double getC()
{
return c;
}
friend double dist(point,line);
};
double dist(point *p1,line *p2)
{
double d,d1,d2;
d1=p2->getA()*p1->getX()+p2->getB()*p1->getY()+p2->getC();
d2=sqrt(p2->getA()*p2->getA()+p2->getB()*p2->getB());
d=fabs(d1/d2);
return d;
}
int main()
{
point *p1 = new point(4,5);
line *p2 = new line(1,2,4);
cout<<dist(p1,p2)<<endl;
return 0;
}

解决方案六:

#include"iostream.h"
#include"math.h"
class line;
class point
{
private:
double x,y;
public:
point (double x1,double y1)
{
x=x1;
y=y1;
}

double getX()
{
return x;
}

double getY()
{
return y;
}
friend double dist(point,line);
};
class line
{
private:
double a,b,c;
public:
line(double a1,double b1,double c1)
{
a=a1;
b=b1;
c=c1;
}
double getA()
{
return a;
}
double getB()
{
return b;
}
double getC()
{
return c;
}
friend double dist(point,line);
};
double dist(point *p1,line *p2)
{
double d,d1,d2;
d1=p2->getA()*p1->getX()+p2->getB()*p1->getY()+p2->getC();
d2=sqrt(p2->getA()*p2->getA()+p2->getB()*p2->getB());
d=fabs(d1/d2);
return d;
}
int main()
{
point *p1 = new point(4,5);
line *p2 = new line(1,2,4);
cout<<dist(p1,p2)<<endl;
return 0;
}

时间: 2024-09-15 12:01:12

c++-运行不成功,这是求点到直线的 距离的相关文章

c语言-关于C语言链表的一些问题,代码怎么都运行不成功跪求大神指点

问题描述 关于C语言链表的一些问题,代码怎么都运行不成功跪求大神指点 下面代码主要实现链表的创建,插入,删除,并且能将两个年龄递增链表进行合并成递减链表 然而在插入和删除操作中gets函数无法起作用,strcmp函数也出现位置冲突报错..功力不足实在解决不了..跪求大神解答..(感觉自己写的东西除了上面两个错误应该还有,但是因为位置冲突问题就只能编译到那个地方无法进行下去..我肉眼实在找不出来.. #include<stdio.h> #include<stdlib.h> #incl

操作-运行一直有错误,求大家帮我看看,我实在找不出来问题= =

问题描述 运行一直有错误,求大家帮我看看,我实在找不出来问题= = import java.io.*; public class AccountDemo { public static void main(String args[]) { CheckingAccount a1=new CheckingAccount(); System.out.println("请开账户"); int accNum2,num; double balance; String aname,a,b; try

boost asio-#include&amp;amp;lt;boost/asio&amp;amp;gt;运行不成功

问题描述 #include<boost/asio>运行不成功 #include"stdafx.h" #include int _tmain(int argc, _TCHAR* argv[]) { return 0; } 编译时成功,运行时弹出一个框框, Unable to start program. 我下的是boost的二进制可执行文件,且在vs2005上已经包含了头文件和库文件,将#include换成#include或者其他就能运行成功,这是什么原因呢 解决方案 boo

using-C++编译没错误,运行停止工作,菜鸟求指点

问题描述 C++编译没错误,运行停止工作,菜鸟求指点 #include #include using namespace std; int main() { string ch = ""; char*p=&ch[0]; cout <<"input cipher code:"; gets(p); cout <<"cipher code:"<<ch<<endl; int j=0; for(j=0

一个ACM竞赛题,关于凸多边形内某点到各顶点距离最远的问题,想求代码。

问题描述 一个ACM竞赛题,关于凸多边形内某点到各顶点距离最远的问题,想求代码. 选址 问题描述 很久以前,在世界的某处有一个形状为凸多边形的小岛,岛上的居民们决定建一个祭坛,居民们认为祭坛的位置离岛的顶点处越远越好.你的任务是求凸多边形内一点,使其与各顶点的距离中最短的距离最远,点在边上也可以.这样的点可能有多个,你只需输出这些点与各顶点的最短距离. 要求 数据输入:第一行是一个整数N(3≤N≤100). 接下来N行按逆时针顺序给出每个顶点的坐标,每行包含2个实数,表示顶点的横坐标和纵坐标(坐

文件上传-linux curl模拟表单提交不成功,新手求指教

问题描述 linux curl模拟表单提交不成功,新手求指教 以下是upload.jsp页面 <html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=UTF-8""><title>上传文件</title></head><body> <form m

安卓 android 工程-安卓导入的工程 在真机上运行 运行不成功 只安装上一个activity

问题描述 安卓导入的工程 在真机上运行 运行不成功 只安装上一个activity 解决方案 具体是怎么不能运行? 看看logcat,应该有异常信息吧:检查你在AndroidManifest.xml中配置的uses-sdk信息和你真机的Android版本

h.264-H.264视频编码,官网下载的JM源码,运行不成功

问题描述 H.264视频编码,官网下载的JM源码,运行不成功 在Jm官网上下载的JM源码,使用VC++ 6.0运行,在总是说,Cannot open configuration file encoder.cfg 请问怎么调试?

vs2010-VS2010运行代码成功,但会出bug

问题描述 VS2010运行代码成功,但会出bug 解决方案 调试成功不代表你程序正确.调试成功只是说你的程序在不触及里面的功能,只是构建框架是正确的.功能性的比如数组越界之类都能通过调试的.假如是登录后出错就把你的登录段代码贴出来,或者把在vs上跳出出错的异常贴出来.