主要的错误在于1/2,这个元素本来按我们的想法,结果应该是0.5,但是计算机计算结果确实0,因为/这个运算符的左右操作数都是整数,所以返回的计算结果也是整数,于是,无论你如何计算,0*任何数值都是0,s总是0,area也总是0。将1/2改为1/2.0,这样计算机计算结果也将返回double类型,也就是0.5,程序就可以正常运行!
scanf("%f,%f,%f",&a,&b,&c);你在输入数据的时候,中间要有, 比如1.1,2.2,1.5
if (a+b>c&&a+c>b&&b+c>a) 这句。改成 if(a+b>c||a+c>b||b+c>a) 试试看。我也是才学。 你试试。
s=1/2*(a+c+b); 改成 s=(a+c+b)/2; 你看看?
s=1/2*(a+c+b);由于s是folat型,所以应该该为s=1.0/2*(a+c+b);