作业帮 > 综合 > 作业

#include main() { float a,b,c,s,area; printf("a,b,c(f)"); sc

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 08:13:21
#include main() { float a,b,c,s,area; printf("a,b,c(f)"); scanf("%f,%f,%f",&a,&b,&c); s=(a
b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n\n",area);
} 中的 area=sqrt(s*(s-a)*(s-b)*(s-c));
area是面积的意思,sqrt是求根函数.
这是一个求三角形面积的公式 ,是数学上著名的海伦公式.证明要利用余弦定理,过程较复杂,如果你需要我可以给你附上.
再问: 运行结果为: a,b,c(f)3,4,6 a= 3.00, b= 4.00, c= 6.00, s= 6.50 area= 5.33a,b,c(f)3,4,6 为什么area= 5.33a,b,c(f)3,4,6,怎样计算的
再答: 我想你可能没看懂公式 你可以用计算器验证下 s=(a+b+c)/2=6.5 s*(s-a)*(s-b)*(s-c)=28.4375 对其求开根号 =5.33 你还有什么不懂的。。 a,b,c 是三角形3边的边长,最后得出来的答案是三角形的面积。s是一个中间量
再问: %7.2f什么意思,还有%10.2e,%10d,%-10.2d等 -在其中的作用,就是左对齐
再答: 这个是c语言字符输出的知识。f表示输出实数,隐含输出6位小数;e以指数形式输出小数;d表示输出整数。 1. %m.nf 指定输出的数据共占m列,其中n位小数,如果有数字长度小于m,则左端补空格。 2. %-m.nf与上面相同,只是使输出的数值向左端靠齐,右端补空格。