#include<stdio.h>
#include<math.h> int main() { int x1,y1,x2,y2,x3,y3; float s,a,b,c,p; while(1) { scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3); if(x1==0&&x2==0&&x3==0&&y1==0&&y2==0&&y3==0) break; a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)); c=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2)); p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("%.1lf\n",s); } return 0;}
继上次的
由于在
#include<stdio.h> int main() { int o; int m,x,y,z; float t; scanf("%d",&o); while(o--) { scanf("%f%f%f%f",&m,&x,&y,&z); t=(x*m)/(y-x); printf("%.2f\n",z*t); } return 0; }
中出现除法 由于 int类型无法表示小数导致 计算出错。
解决方法有两种
1 提前将MXYZ等定义为浮点数。
2 t=(x*m)*1.0/(y-x);(这种写法也可将x*m化为小数从而转换为浮点数)。