求三角形面积:area=s*(s-a)*(s-b)*(s-c) 定义两个带参数的宏。s=1/2(a+b+c)一个用来求s,另一个用来求area

讲题中的宏改为函数。原代码为:#include "stdafx.h"
#include<iostream>
#include<cmath>
using namespace std;
#define S(a,b,c) (a+b+c)/2
#define AREA(a,b,c) sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)-b)*(S(a,b,c)-c))
int _tmain(int argc, _TCHAR* argv[])
{ float a,b,c;
cout<<"input a,b,c:";
cin>>a>>b>>c;
if (a+b>c&&a+c>b&&b+c>a)
cout<<"area="<<AREA(a,b,c)<<endl;
else
cout<<"It is not a triangle!"<<endl;
return 0;
}
急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

#include <iostream>
#include <cmath>
using namespacestd;
#define s(a,b,c) (a+b+c)/2
#define area(s,a,b,c) sqrt(s*(s-a)*(s-b)*(s-c))
int main()
{
cout<<"输入三角形的三边长:"<<endl;
double a,b,c;
cin>>a>>b>>c;
if (!(a+b>c&&a+c>b&&b+c>a)) {
cout<<"Illegal!"<<endl;
return0;
}
double y1 =s(a,b,c);
cout<<"面积: "<<area(y1,a,b,c)<<endl;
return0;
}

输入三角形的三边长:

2 3 4
面积: 2.90474
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-02-13
是不是改为调用函数?
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double s(double,double,double);
double area(double,double,double);
double a,b,c,s1,area1;
cout<<"请输入三角形的三个边长:";
cin>>a>>b>>c;
if(a+b>c&&b+c>a&&a+c>b)
{
s1=s(a,b,c);
area1=area(a,b,c);
cout<<setiosflags(ios::fixed)<<setprecision(2);
cout<<"三角形的周长为:"<<s1<<endl;
cout<<"三角形的面积为:"<<area1<<endl;
}
else
cout<<"It is not a triangle!"<<endl;
return 0;
}
double s(double a,double b,double c)
{
double s1;
s1=double(1.0/2)*(a+b+c);
return s1;
}
double area(double a,double b,double c)
{
double area1,s1;
s1=s(a,b,c);
area1=s1*(s1-a)*(s1-b)*(s1-c);
return area1;
}
第2个回答  2012-03-19
初中生飘过
第3个回答  2012-03-18