#include<iostream>
#include <cmath>
using namespace std;
class Point{
public:
Point();//缺省构造函数
Point(int x,int y):x(x),y(y){}//构造函数
~Point(){};//析构函数
int getX() const {return x;}
int getY() const {return y;}
double distance(int x,int y);
private:
int x,y;
};
Point::Point(){
x=y=0;
}
double Point::distance(int x,int y){
return sqrt(x*x+y*y);
}
int Ascending(double a[]){
int temp;
for(int i=0;i<10-1;i++){
for(int j=0;j<10-1-i;j++){
if(a[j]>a[j+1]){
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
for(int i=0;i<10;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
int main(){
double b[10];
Point a[10]={Point(-1,-3),Point(-2,-4),Point(1,3),Point(-2,5),Point(3,-4),Point(5,3),Point(1,7),Point(6,3),Point(4,4),Point(7,8)};
for(int i=0;i<10;i++){
b[i]=a[i].distance(a[i].getX(),a[i].getY());
}
Ascending(b);
return 0;
}
题目要求:
创建点的对象数组,包含10个点,编写函数使得点按照距离原点的远近排列,在主函数中输出排序后的点及其距离值(30分)。10个点的坐标分别为:
(-1,-3),(-2,-4),(1,3),(-2,5),(3,-4),(5,3),(1,7),(6,3),(4,4),(7,8)
如题,加粗的功能未实现,求教