分析 这道题要注意的是数据类型不能用float型,如果用float型的话最后一个测试点是通不过的,它的精度不够,所以要用double型。 代码 #include<bits/stdc++.h> using namespace std; int main(){ double a,b,c,p; cin>>a>>b>>c; p=(a+b+c)/2; printf("%.1lf",sqrt(p*(p-a)*(p-b)*(p-c))); return 0; }