一道关于c++的简单问题

echocch 2018-04-19 05:06:04
刚刚学c++,看到一个例题是求两点间距离,程序如下
#include <iostream.h>
#include <math.h>
class Point //Point类定义
{
public: //外部接口
Point(int xx=0, int yy=0) {X=xx;Y=yy;}
int GetX() {return X;}
int GetY() {return Y;}
friend float fDist(Point &a, Point &b); //友元函数声明
private: //私有数据成员
int X,Y;
};
float fDist(Point &p1, Point &p2) //友元函数实现
{ double x=double(p1.X-p2.X); //通过对象访问私有数据成员
double y=double(p1.Y-p2.Y);
return float(sqrt(x*x+y*y));
}
void main() //主函数
{
Point myp1(1,1),myp2(4,5); //定义Point类的对象
cout<<"The distance is:";
cout<<fDist(myp1,myp2)<<endl; //计算两点间的距离
}

想问一下如果我想任意输入点的坐标,应该怎么改动呢,并且如果结果有小数点位数的改变,应在哪里改动呢
...全文
887 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
月凉西厢 2018-04-20
  • 打赏
  • 举报
回复
只要有X,Y的坐标就可以构造Point,所以利用cin>>分别输入两组(x,y)即可。 至于结果的小数点位,原来的的结果本来就是float类型的。如果你说的输出位数,用printf控制一下就好了
N阶魔方 2018-04-20
  • 打赏
  • 举报
回复
cout.setf(ios::right); // 设置对齐方式 cout.width(8); //设置输出宽度 cout.fill('0'); //将多余的空格用0填充 cout.precision(2); //设置输出精度,保留有效数字 cout<<"The distance is:"; cout<<fDist(myp1,myp2)<<endl; //计算两点间的距离
womingchengyou_BUG 2018-04-20
  • 打赏
  • 举报
回复
main 函数可以改成

void main()
{
        int x1, x2, y1, y2;
	cin >> x1;
	cin >> x2;
	cin >> y1;
	cin >> y2;
	Point myp1(x1, y1), myp2(x2, y2);

	float l = fDist(myp1,myp2);
	printf("The distance is %.2f\n", l);
}

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧