mytriangle.h
bool is_valid()
{
}
double getarea()
{
}
mytriangle.cpp
#include"mytriangle.h"
#include<cstdio>
#include<cmath>
#define eps 1e-6
bool is_valid(double side1,double side2,double side3)
{
if(side1+side2<side3+eps)
return false;
if(side1+side3<side2+eps)
return false;
if(side2+side3<side1+eps)
return false;
return true;
}
double getarea(double side1,double side2,double side3)
{
double area,s;
s=(side1+side2+side3)/2;
area=sqrt(s*(s-side1)*(s-side2)*(s-side3));
return area;
}
4.5.cpp
#include"mytriangle.cpp"
#include<cstdio>
int main()
{
double side1,side2,side3;
scanf("%lf%lf%lf",&side1,&side2,&side3);
if(!is_valid(side1,side2,side3))
{
printf("error");
return 0;
}
printf("%.5f",getarea(side1,side2,side3));
return 0;
}
这就是把3个文件连起来了,不是很理解为何不能在4.5cpp里直接调用mytriangle.h,然后上网查了查。
#include".h"include".cpp"本质上就是把那个文件里的代码复制到这个文件里!
于是以上程序本质上就全塞到了4.5.cpp里面,变成了
bool is_valid()
{
}
double getarea()
{
}
#include<cstdio>
#include<cmath>
#define eps 1e-6
bool is_valid(double side1,double side2,double side3)
{
if(side1+side2<side3+eps)
return false;
if(side1+side3<side2+eps)
return false;
if(side2+side3<side1+eps)
return false;
return true;
}
double getarea(double side1,double side2,double side3)
{
double area,s;
s=(side1+side2+side3)/2;
area=sqrt(s*(s-side1)*(s-side2)*(s-side3));
return area;
}
#include<cstdio>
int main()
{
double side1,side2,side3;
scanf("%lf%lf%lf",&side1,&side2,&side3);
if(!is_valid(side1,side2,side3))
{
printf("error");
return 0;
}
printf("%.5f",getarea(side1,side2,side3));
return 0;
}