关于C++ 报错-1.#IND

来源:百度知道 编辑:UC知道 时间:2024/05/15 03:39:20
//此程序输出直线方程式正确的,输出交点坐标总是(-1.#IND,-1.#IND)不知道为什么?
#include <iostream.h>
class line
{private:
double k,b;
public:
friend class crossover;
void equation(double k,double b) //给定斜率k,截距b,求得直线方程
{if(k!=0)
cout<<"直线方程为:"<<"y=("<<k<<")*x+("<<b<<")"<<endl;
else
cout<<"error!"<<endl;
}
};

class crossover
{private:
double X,Y;
public:
void cross(line&,line&);
};

void crossover::cross(line& m,line& n) //求两直线交点坐标
{
X=(n.b-m.b)/(m.k-n.k);
Y=m.k*X+m.b;
cout<<"("<<X<<","<<Y<<")"<<endl;
}

void main()
{double k1,k2,b1,b2;
cout<<"input k1:";
cin>>k1;
cout<<"input b1:";
cin>>b1;<

你没有给成员变量赋值,看下面代码:
class line
{private:
double k,b;
public:
friend class crossover;
void equation(double _k,double _b) //给定斜率k,截距b,求得直线方程
{
k=_k; //这里你没有给成员变量赋值
b=_b;
if(k!=0)
cout<<"直线方程为:"<<"y=("<<k<<")*x+("<<b<<")"<<endl;
else
cout<<"error!"<<endl;
}
};

VC2005 C++调式了,没有问题.

是分母为0 的意思。

你的变量貌似没有初始化呢?