C语言 宏定义 带参数的宏定义

已知三角形的面积是area=s(s-a)(s-b)(s-c),其中s=(a+b+c)/2,a、b、c为三角形的三条边。定义两个带参数的宏,一个用来求s,一个用来求area,试编写一个程序,用带参数的宏来计算三角形的面积。

#define area(a,b,c)  ((a+b+c)/2((a+b+c)/2-a)((a+b+c)/2-b)((a+b+c)/2-c))

#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 main()
{
    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;
}

有帮助采纳一下哦!