课堂测试时的一道考题求三角形面积
我的写法
#include <stdio.h>
#include <math.h>
int main()
{
double a = 2, b = 2, c = 3, p, area;
if (a + b > c && a + c > b && b + c > a)
{
p = (a + b + c) * 0.5;
area = sqrt(p * (p - a) * (p - b) * (p - c));
printf("are=%lf\n", area);
}
else printf ("无法构成三角形 \n");
return 0;
}
一名同学的写法
他定义了一个接口,属于比较高级的写法
我现在还没有学到
于是向他学习,模仿他的写法
#include <stdio.h>
#include<math.h>
double area(double a, double b, double c);
{
double p = (a + b + c) * 0.5;
double area = p*(p-a)*(p-b)*(p-c);
return sqrt(area);
}
int main()
{
double a, b, c;
printf("请输入三边长:\n");
scanf("%lf %lf %lf", &a, &b, &c);
printf("面积为;%.2lf", area(a, b, c));
return 0;
}
第一次写接口,发现编译错误
仔细检查后发现在第一行的新定义的函数后多加了一个;
我习惯性地加上了;
修改后
#include <stdio.h>
#include<math.h>
double area(double a, double b, double c)
{
double p = (a + b + c) * 0.5;
double area = p*(p-a)*(p-b)*(p-c);
return sqrt(area);
}
int main()
{
double a, b, c;
printf("请输入三边长:\n");
scanf("%lf %lf %lf", &a, &b, &c);
printf("面积为;%.2lf", area(a, b, c));
return 0;
}
运行正常