为什么结果始终为1

#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);

}


不凡的蚂蚁
浏览 1122回答 3
3回答

习惯受伤

sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));你这里没有赋值怎么就输出了?你是不是应该这样:int jl = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); 然后输出jl的值。下边那个函数中一样

onemoo

“结果始终为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>。
打开App,查看更多内容
随时随地看视频慕课网APP