题目
答案
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c;
scanf("%f %f %f",&a,&b,&c);
if(a+b<=c||a+c<=b||b+c<=a)
{
printf("These sides do not correspond to a valid triangle");
return 0;
}
float s,area;
s = (a+b+c)/2;
area = pow(s*(s-a)*(s-b)*(s-c),0.5);
printf("area = %.2f; perimeter = %.2f",area,s*2);
}
测试点
问题总结
我自己出现的问题是没有考虑两边之和等于第三边的情况(即边界值),以及将 s 错当成周长输出
希望自己能更加注重对于细节的把控吧