为了账号安全,请及时绑定邮箱和手机立即绑定

为什么结果始终为1

为什么结果始终为1

C++
不凡的蚂蚁 2017-01-25 10:13:17
#include <math.h>#include <iostream>using namespace std;class changdu{ public: changdu() { x1=0; x2=0; y1=0; y2=0; }; void juli(int x1,int x2,int y1,int y2);// void juli(double x1,double x2,double y1,double y2); private: int x1; int x2; int y1; int y2; };void changdu::juli(int x1,int x2,int y1,int y2)//{ sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); cout<<sqrt<<endl; }void changdu::juli(double x1,double x2,double y1,double y2){     sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); cout<<sqrt<<endl; }int main(){ changdu c1; changdu c2; c1.juli(1,3,1,3);  c2.juli(1.5,2.5,1.5,2.5);}
查看完整描述

3 回答

已采纳
?
习惯受伤

TA贡献885条经验 获得超1144个赞

sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));你这里没有赋值怎么就输出了?你是不是应该这样:int jl = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); 然后输出jl的值。下边那个函数中一样
查看完整回答
2 反对 回复 2017-01-25
?
onemoo

TA贡献883条经验 获得超454个赞

“结果始终为1”?  什么结果? 这个代码能出结果吗??  这个代码甚至都不能编译吧!...


代码中 cout<<sqrt<<endl; 这样的语句会引起编译器报错,编译失败。

原因就是: sqrt 是什么啊? 不是变量,也不是任何可被打印的东西,所以这句代码无法通过。


我猜你是想打印出前一句调用sqrt函数的返回值。

那么你可以用一个变量去接收这个返回值,再将其打印出来:

double a = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
cout << a<< endl;

或者更简洁些,直接打印函数返回值:

cout << sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)) << endl;


另外再多说一点,你想在 C++ 代码使用 C 标准库中的函数,那应该 include C++ 版本的 C 标准库头文件。比如 <math.h> 在 C++ 中是 <cmath>。

查看完整回答
1 反对 回复 2017-01-25
  • 3 回答
  • 0 关注
  • 1121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信