注册 登录
编程论坛 C++教室

求五边形面积,不知道这个程序哪错了?

五霄 发布于 2012-03-24 10:32, 686 次点击
#include<iostream.h>
#include<math.h>
int chang(int a,int b,int c,int d)
{
    double l;
    l=sqrt((a-c)*(a-c)+(b-d)*(b-d));
    return l;
}
int hailun(double a,double b,double c)
{
    double s,y;
    y=(a+b+c)/2;
    s=sqrt(y*(y-a)*(y-b)*(y-c));
    return s;
}
void main()
{
    int q,w,r,t,u,i,p,a,d,f;
    double h;
    cout<<"请输入第一个点坐标:";
    cin>>q>>w;
    cout<<"请输入第二个点坐标:";
    cin>>r>>t;
    cout<<"请输入第三个点坐标:";
    cin>>u>>i;
    cout<<"请输入第四个点坐标:";
    cin>>p>>a;
    cout<<"请输入第五个点坐标:";
    cin>>d>>f;
    h=hailun(chang(q,w,r,t),chang(q,w,u,i),chang(r,t,u,i))+hailun(chang(q,w,p,a),chang(q,w,u,i),chang(u,i,p,a))+hailun(chang(q,w,p,a),chang(q,w,d,f),chang(p,a,d,f));
    cout<<"面积为:"<<h<<endl;
}
6 回复
#2
hellovfp2012-03-24 11:02
编译错还是运行结果不对?
#3
五霄2012-03-24 12:07
运行结果不对
#4
Wikyo_hoho2012-03-24 15:42
我就提一点意见,注意int 和double的转换,像你在int函数里返回double类型数据,如果要答案准确应该改成double类函数
#5
pangding2012-03-25 08:27
double 转 int 编译器没有提示吗?
#6
键佳蕾2012-03-26 16:58
把两个子函数返回类型改成double。double转int会丢失数据的,在内存中占的字节数不一样
#7
tianjun88882012-03-26 18:23
把chang和hailun函数前面的int改成double型就对了,因为你希望两个函数的返回值double型,但是函数的返回值是int型。
1