cnbb12 @ 2020-08-15 22:38:30
最开始计算两点间距离时,使用了abs函数来求两点之差的绝对值,结果最后一个WA了。
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <math.h>
double f(double a1,double b1,double a2,double b2){
double d1,d2,d;
d1 = abs(a2-a1);
d2 = abs(b2-b1);
d = sqrt(d1*d1+d2*d2);
return d;
}
int main(){
double x1,y1,x2,y2,x3,y3;
scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3);
printf("%.2lf",f(x1,y1,x2,y2)+f(x1,y1,x3,y3)+f(x2,y2,x3,y3));
return 0;
}
用数据调试发现abs(double)计算出来的结果有偏差。比如abs(23.234+99.99)结果为123.00,找了度娘,没搞清楚,后来发现本题可以不用abs,删掉后就AC后,只是不太理解,拜托各位大佬解惑!
by Talrity_sym_Forever @ 2020-08-15 22:40:14
me too
by Terrible @ 2020-08-15 23:01:04
abs()返回值是整数类型的吧。
浮点型用fabs()。