c++输出结果为啥都是0啊

这是题目
编程1.设计一个名为MyPiont的类,表示直角坐标系中的一个点,这个类包含:
1.两个数据域x,y表示坐标;
2.一个无形参构造函数,创建一个点(0,0);
3.一个构造函数,按给定的坐标创建一个点;
4.x和y的获取器函数;
5.一个名为distance的函数,返回当前点和另一个给定的MyPoint类型点之间的距离;
并编写一个测试程序,它创建两个点(0,0),(10,30.5),并输出两点间的距离。
这是我写的代码
#include<iostream>
#include<math.h>
using namespace std;
class Mypoint{
private:
float x1,y1,x2,y2;
public:
Mypoint()
{
float x1=0.0;
float y1=0.0;
}
Mypoint(float x,float y);
float Getx1()
{
return x1;
}
float Gety1()
{
return y1;
}
float Getx2()
{
return x2;
}
float Gety2()
{
return y2;
}
float distance();
};
Mypoint::Mypoint(float x,float y)
{
float x2=x;
float y2=y;
}
float Mypoint::distance()
{
float dis;
dis=sqrt(((Getx1()-Getx2())*(Getx1()-Getx2()))+((Gety1()-Gety2())*(Gety1()-Gety2())));
cout<<"the distance is "<<dis<<endl;
return dis;
}
void main()
{
Mypoint c1,c2;

Mypoint(0,0);
c1.distance();
Mypoint(10.0,30.5);
c2.distance();
}
我还有加分的

你的整个类的设计方式有问题。
可以再多看看对象的概念。
下面的例子参考一下吧:
#include <iostream.h>
#include <math.h>
class Point {
private:
double x;
double y;
public:
Point() {
x = 0;
y = 0;
}
Point(double x,double y) {
this->x = x;
this->y = y;
}
double getX() {
return x;
}
double getY() {
return y;
}
double distance(Point p) {
return sqrt(pow(p.getX()-x,2)+pow(p.getY()-y,2));
}
};
void main()
{
Point p1(1,1);
Point p2(2,2);
cout<<p1.distance(p2)<<endl;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

c++程序求问,为什么结果是0
因为 int 类型的关系。int 类型会把小数部分截断,根据你的程序返回是 0.5,而变量 b 是 int 类型,会把 0.5 的小数部分截断,那么就剩下 0 ,所以结果是 0 。如果你变量 b 声明为 float 类型或者 double 类型,则结果是 0.5 。

求助: C++ 计算结果为何无故归零
问题出在1\/6,因为在C和C++语言中,整数除以整数,编译器会自动把结果取整,也就是1\/6=0.解决方法是用double或float数据除以6,也就是说把1\/6改成1.0\/6就行了.(x1到x4,y1到y4,8个值都要改)

为什么我用C++计算都等于零?比如4\/8=0
因为C++中\/运算是取整运算,4\/8=0.5,所以显示0

C++入门题 为什么输出都是0?
int a,b,c; \/\/定义了全局变量,编译器自动初始化为0。,这就是输出0的原因 void main(){ void count(char str[]);char text[100];cout<<"输入字符串:"<<endl;gets(text);count(text);} void count(char str[]) \/\/因为a,b,c是按值传递的,跳出count函数值就被释放了 { int a...

C++ 一个简单程序 为什么输出一直是零
c=(5\/9)*(F-32);有问题 因为5\/9的操作时按照整型来计算的,所以5\/9的整型计算就是0 修改一下 c=(5.0\/9)*(F-32)将5写成5.0之后,就是按照浮点型计算的,所以就能算出小数了,不会为0

c++新手求助,为什么下面代码 无论输入什么输出的结果都是0.00 0.00
需要float型的数据,但是你从键盘输入的时候用的是%d,所以全读成了整数了。改成%f即可。for(i=0;i<5;i++){ scanf("%f",&score1[i]);\/\/改成%f } printf("please input 10 score:\\n");for(j=0;j<10;j++){ scanf("%f",&score2[j]); \/\/改成%f } 我调试过你的代码,修改之后...

c++输出结果为啥都是0啊
你的整个类的设计方式有问题。可以再多看看对象的概念。下面的例子参考一下吧:include <iostream.h> include <math.h> class Point { private:double x;double y;public:Point() { x = 0;y = 0;} Point(double x,double y) { this->x = x;this->y = y;} double getX() { return...

...C++时,如果所得的值小于零时,比如0.5的情况下,都会输出结果是0...
因为你选取的变量类型为整型,在C\/C++中整型变量进行运算时会舍去小数点后的小数,要保留应选取浮点型 浮点型一般选取double型,除非你确定float不会溢出

...k=0) printf("Yse"); else printf("%d",k); 结果为什么是0啊...
1、c\/c++中=(一个等号)是用来赋值的;==(两个等号)是用来判断相等的。2、在这个程序中if(k=0),c\\c++会先给k赋值0,然后再判断k的逻辑值,k的逻辑值是0返回false,然后执行printf("%d",k);当然会打印0,因为k前面已经赋值为0了。3、程序的正确写法是:int k=10;if(k==0)printf("...

C++程序 返回结果为什么总是0?
在子函数中的变量是不可以和调用函数共享内存的 也就是说你main函数 中的temp 在定义的时候是0你没有改变它的值 输出的一定是0 你可以这样写 修改Compare函数 int Compare(int a[N],int b[N],int i=0,int j=0,int k=0,int temp=0){ ...\/\/你的代码 return temp;} main中 加一个 t...

相似回答