一个简单C程序的宏定义问题.

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:44:11
题目:三角形的面积为:area=sqrt(s*(s-a)*(s-b)*(s-c))其中s=(a+b+c)/2
a,b,c为三条边.请定义两个带参数的宏,一个用来求s 另一个用求area.写程序,在程序中用带实参的宏名来求面积area.
#include<math.h>
#define s(a,b,c) (a+b+c)/2
#define area(s,a,b,c) sqrt(s*(s-a)(s-b)(s-c))

main()
{
int a,b,c;
float j,s;
scanf("%d%d%d",&a,&b,&c);
s=s(a,b,c);
j=area(s,a,b,c);
printf("s=%d,j=%f",s,j);
getch();
}
此程序的错误提示是"调用未定义的函数"
帮帮我,怎么解释??

呵呵,可能是没有把,stdio.h包含进来吧
这样就可以了
#include"stdio.h"
#include<math.h>
#define s(a,b,c) (a+b+c)/2
#define area(a,b,c) sqrt(s*(s-a)*(s-b)*(s-c))

main()
{
int a,b,c;
float j,s;
scanf("%d%d%d",&a,&b,&c);
s=s(a,b,c);
j=area(a,b,c);
printf("s=%f,j=%f",s,j);
}

同意楼上的....
#include"stdio.h"
#include<math.h>
#define s(a,b,c) (a+b+c)/2
#define area(a,b,c) sqrt(s*(s-a)*(s-b)*(s-c))

main()
{
int a,b,c;
float j,s;
scanf("%d%d%d",&a,&b,&c);
s=s(a,b,c);
j=area(a,b,c);
printf("s=%f,j=%f",s,j);
}

#define area(s,a,b,c) sqrt(s*(s-a)(s-b)(s-c))

这句上面sqrt() 这个函数没有定义