C++ 编程题! 望高手救小弟一命 感激不尽

来源:百度知道 编辑:UC知道 时间:2024/06/02 02:29:56
一个坐标系中 有 A(Xa Ya) B(Xb Yb) 2个点 A B 2个点的数值要求从txt 文档中读取( AB 数量随意) 求出所有 A B 2点间的距离L 输出显示在屏幕上 然后任意输入一个值T 把这些距离与T进行比较 如果有距离小于T值 输出满足这个条件的A, B 2点的坐标
比较大小的时候 程序会莫名的退出

#include <iostream>
#include <vector>
#include <math.h>
#include <fstream>

using namespace std;

struct L
{
double x0;
double y0;
double x1;
double y1;
double Distance;
}dis;

int main()
{

vector<L> distance;
vector<L>::iterator iter;
double T;

ifstream input;
input.open("a.txt");

if (input.fail())
{
cout<<"open file failed!\n";
exit(1);
}

while (input>>dis.x0>>dis.y0>>dis.x1>>dis.y1)//输入坐标点
{
dis.Distance = sqrt((dis.x1-dis.x0)*(dis.x1-dis.x0) + (dis.y1-dis.y0)*(dis.y1-dis.y0));//计算距离

distance.push_back(dis);//将距离存储在容器中
}

for (iter = distance.begin(); iter != distance.end(); ++iter)//输出所有的距离
{
cout<<(*iter).Distance<<" ";
}