【項目6-點結構體與枚舉】

來源:互聯網
上載者:User

#include "iostream"
#include "Cmath"
using namespace std;

enum SymmetricStyle {axisx,axisy,point};//分別表示按x軸, y軸, 原點對稱
struct Point
{
 double x;  // 橫座標
 double y;  // 縱座標
};
double distance(Point p1, Point p2);   // 兩點之間的距離
double distance0(Point p1);
Point symmetricAxis(Point p,SymmetricStyle style);   //返回對稱點

int main( )
{
 Point p1={1,5},p2={4,1},p;
 cout<<"兩點的距離為:"<<distance(p1,p2)<<endl;
 cout<<"p1到原點的距離為:"<<distance0(p1)<<endl;
 p=symmetricAxis(p1,axisx);
 cout<<"p1關於x軸的對稱點為:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
 p=symmetricAxis(p1,axisy);
 cout<<"p1關於y軸的對稱點為:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
 p=symmetricAxis(p1,point);
 cout<<"p1關於原點的對稱點為:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
 return 0;
}

// 求兩點之間的距離
double distance(Point p1,Point p2)
{
 double d;
 d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
 return d;
}

// 求點到原點的距離
double distance0(Point p)
{
 double d;
 d=sqrt(p.x*p.x+p.y*p.y);
 return d;
}

// 求對稱點
Point symmetricAxis(Point p1,SymmetricStyle style)
{
 Point p;
 p.x=p1.x;
 p.y=p1.y;
 switch(style)
 {
 case axisx:
  p.y=-p1.y; break;
 case axisy:
  p.x=-p1.x; break;
 case point:
  p.x=-p1.x;p.y=-p1.y;
 }
 return p;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.