题目:输入两个点的坐标,求出两点间的距离。
C实现:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
double Distance(int x1, int y1, int x2, int y2) {
int d_x = x1 - x2;
int d_y = y1 - y2;
double distance = sqrt(d_x*d_x + d_y*d_y);
return distance;
}
int main() {
int x1, y1, x2, y2;
printf("请输入第一个点的坐标:");
scanf("%d,%d", &x1, &y1);
printf("请输入第二个点的坐标:");
scanf("%d,%d", &x2, &y2);
printf("输出两点之间的距离:%lf\n",Distance(x1, y1, x2, y2));
return 0;
}
C运行结果:
C++实现:
方法一:用一个类实现
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cmath>
using namespace std;
//点类
class Point {
public:
void setXY(int x, int y) {
m_x = x;
m_y = y;
}
double Distance(Point &another) {
int d_x = m_x - another.m_x;
int d_y = m_y - another.m_y;
double distance = sqrt(d_x*d_x + d_y*d_y);
return distance;
}
private:
double m_x;;
double m_y;
};
int main() {
Point a, b;
int x, y;
cout << "输入第一个点的坐标:";
cin >> x >> y;
a.setXY(x, y);
cout << "输入第二个点的坐标:";
cin >> x >> y;
b.setXY(x, y);
cout << "两点间距离为:" << a.Distance(b) << endl;
return 0;
}
方法二:用两个类实现
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cmath>
using namespace std;
//点类
class Point {
public:
void setXY(int x, int y) {
m_x = x;
m_y = y;
}
int getX() {
return m_x;
}
int getY() {
return m_y;
}
private:
double m_x;;
double m_y;
};
class Distance {
public:
double distance;
void getDistance(Point a, Point b) {
m_a = a;
m_b = b;
int d_x = m_a.getX() - b.getX();
int d_y = m_a.getY() - b.getY();
distance = sqrt(d_x*d_x + d_y*d_y);
}
double display() {
return distance;
}
private:
Point m_a, m_b;
};
int main() {
Point A, B;
int x, y;
cout << "输入第一个点的坐标:";
cin >> x >> y;
A.setXY(x, y);
cout << "输入第二个点的坐标:";
cin >> x >> y;
B.setXY(x, y);
Distance D;
D.getDistance(A, B);
cout << "两点间距离为:" << D.display() << endl;
return 0;
}
C++运行结果: