编程问题(在线等答案)

来源:百度知道 编辑:UC知道 时间:2024/09/25 15:25:13
#include <stdio.h>
#include <math.h>
#define PI 3.1415926
main()
{
int a,b,c,l,s,A1,A2;
scanf("%d%d%d",&a,&b,&c);
l=(a+b+c)/2;
s=sqrt(l*(l-a)*(l-b)*(l-c));
A1=PI*(s/l)*(s/l);
A2=PI*((a*b*c)/4s)*((a*b*c)/4s);
printf("s=%d\n,A1=%d\n,A2=%d\n,s,A1,A2");
}

这是一个通过三角形三边长(abc)求三角形面积,最大外切圆面积A1,最小内切圆面积A2的一个程序,编写完成后提示A2出现问题。希望解决,并提出一些好的建议,3Q!!
1楼
若该为A2=PI*((a*b*c)/4*s)*((a*b*c)/4*s)
那么运算从左至又就是(a*b*c)/4的结果在乘s就错了。
还有,假如我按照第2个来计算,是可以生成exe的,
但是运行过后数据特别大,肯定是错的,我上面哪里还有错 ?
3Q

A2=PI*((a*b*c)/4s)*((a*b*c)/4s);

改为A2=PI*((a*b*c)/4*s)*((a*b*c)/4*s);

or A2=PI*((a*b*c)/(4*s))*((a*b*c)/(4*s));

4与S之间要加运算符!

l,s,A1,A2最好设为float型
A2=PI*((a*b*c)/4s)*((a*b*c)/4s)改为A2=PI*((a*b*c)/(4*s))*((a*b*c)/(4*s));

1、l,s,A1,A2都设为float型,
2、l=(a+b+c)/2.0
3、A1和A2,A1=PI*(s+0.0)/l*(s+0.0)/l ,A2=PI*(…/(4*s+0.0))/(4*s+0.0)
4、printf中的%d改成%f