91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

計算平面中點間距離

發布時間:2020-06-23 17:37:35 來源:網絡 閱讀:454 作者:wzdouban 欄目:編程語言
/*
理論是可以直接數組做的
然后呢現在復習呀……………………   用小demo復習c++
下面的代碼達到以下幾點
1.N=9好理解 好展示
2.N為一個大數時,可以用于測
3.注意沒有寫入文件  可以直接用cmd  重定向exe 到txt

*/
//http://blog.csdn.net/yanxiaolx/article/details/51986428 

  //http://blog.csdn.net/yanxiaolx/article/details/51986428 


#include<iostream>
#include<list>
#include<cmath>
#include <iomanip>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
const int N = 9;
double x[N] = {0,0,0,1,1,1,2,2,2};
double y[N] = {0,1,2,0,1,2,0,1,2};
double ds[N][N]= {0};
void Rand()
{ 
 	srand(time(0));
	int n = 0;
	while(n < N)
	{
 		x[n] = rand()%100;
 		y[n] = rand()%100;
		++n;
	}
}

class Point
{
public:
	Point(double x,double y,double ox,double oy)
		:startx(x),starty(y),endx(ox),endy(oy)
	{}
	Point(const Point& point)
	{
		startx = point.startx;
		starty = point.starty;
		endx = point.endx;
		endy = point.endy;
	}
private:
	double startx;
	double starty;
	double endx;
	double endy;
	friend ostream&  operator<<(ostream &out,Point &point);
};

ostream&  operator<<(ostream &out,Point &point)
{
	out<<"("<<point.startx<<","<<point.starty<<")"<<" "
		<<"("<<point.endx<<","<<point.endy<<")";
	return out;
}


template<class _Ty>
class List
{
public:
	List(){}
	~List(){}
	void add(const _Ty&point)
	{
		List_.push_back(point);
	}

	bool IsExist(double s)
	{
		it = List_.begin();
		for(;it != List_.end();++it)
		{
			if(s == (*it).getdistence())
			{
				return true;
			}
		}
		return false;
	}
	bool Insert(double s,Point point)
	{
		it = List_.begin();
		for(;it != List_.end();++it)
		{
			if((*it).getdistence() == s)
			{
				(*it).add(point);
				return true;
			}
		}
		return false;
	}

	void disp()
	{
		it = List_.begin();
		for(;it != List_.end();++it)
		{
			(*it).disp();
		}
		cout<<endl;
	}
private:
	list<_Ty> List_;
	typename list<_Ty>::iterator it;
};

template<typename _Ty=Point>
class SList
{
public:
	SList(double s=0):d(s){}
	~SList(){}
	void add(const _Ty&point)
	{
		slist.push_back(point);
	}

	double getdistence()
	{
		return d;
	}

	void disp()
	{
		it = slist.begin();
		cout<<"距離:"<<d<<endl;
		for(;it != slist.end();++it)
		{
			cout<<*it<<endl;
		}
	}
	
private:
	double d;
	list<_Ty> slist;
	typename list<_Ty>::iterator it;

};

void calculate()
{
	double d = 0;
	for(int i=0;i < N;++i)
	{
		for(int j=i+1;j < N;++j)
		{
			d = sqrt((x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j]));
			ds[i][j] = d;
		}
	}
}

void show()
{
	for(int i=0;i < N;++i)
	{
		for(int j=0;j < N;++j)
		{
			cout<<setw(6)<<ds[i][j]<<" ";
		}
		cout<<endl;
	}
}

int main()
{
	List<SList<Point> > List;
 	//Rand();
	calculate();
	 show();

	for(int i=0;i < N;++i)
	{
		for(int j=0;j < N;++j)
		{
			if(ds[i][j] != 0 )
			{
				if(!List.IsExist(ds[i][j]))
				{
					List.add(SList<Point>(ds[i][j]));
				}
				List.Insert(ds[i][j],Point(x[i],y[i],x[j],y[j]));
			}
		}
	}
	List.disp();
	return 0;
}
/*


LINUX  下的測試 隨機數需要添加


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

成武县| 绥中县| 剑河县| 五指山市| 长寿区| 大荔县| 庄浪县| 蒲城县| 保山市| 贵南县| 临沂市| 甘南县| 拉萨市| 竹山县| 辽宁省| 和硕县| 穆棱市| 九龙坡区| 天气| 衡东县| 阜新| 新乡市| 桑日县| 宿松县| 邓州市| 安顺市| 扎兰屯市| 清流县| 盐亭县| 洛扎县| 南宫市| 曲沃县| 敦化市| 泰宁县| 曲阳县| 榆社县| 三河市| 南木林县| 蒙自县| 兰溪市| 城固县|