对,可能是你的逗号有问题,你要具体看你的输入,代码有逗号就输入必须要有逗号,如果还不对,你可以把float改为double,把精度提高
代码应该没有问题.是你输入的数据格式不对吧
注意 scanf("%f,%f,%f",&a,&b,&c);中"%f,%f,%f"用逗号分隔,在输入数值时也要用逗号分隔,如 2,3,4
另外你逗号可能写成了中文全角的,要用英文半角的。
如果结果还不对,把变量改成double类型,提高计算精度
#include <stdio.h>
#include <math.h>
void main()
{
double a,b,c,s,area; //最好放在第一行
printf("a,b,c");
scanf("%lf,%lf,%lf",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%.1lf\n", area);
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!