标签:
These will be floating point numbers;看这句话,就是说数据会是浮点型的,
问题(一)数据定义成double类型就过了
我当时以为定义成float类型就可以了,
因为题上说是float point number,但是定义成float类型的却wrong answer,同学让我改成double类型的,我当时问她依据
她说没有依据,你试试呗,我挺固执地继续从别的地方找错误,没有依据?不可能嘛!最后无奈试了一下果真改了类型就对了,
得出一个教训,题上让用的floating point numbers时候,你可以用double类型的数据存储,用不上那么长最后不用后边多余的位数就是了嘛
问题(二)小数点后面有精确到7位才过,8位就不过
还发现一个问题,存储PI的double类型数据,我定义成3.1415926就对了,定义成3.14159265就错了,
可能是后台测评的时候用的PI就是3.1415926,但是我觉得也可以从题中找,题中说是floating point numbers,
我想意思就是定义精度为7~8位的数据就可以了,因为float精度7~8位,
ps:我想了下,这道题给出的数据精度7~8位但是算的时候必须定义成double类型的原因是S = PI * R^2;这样一来,
数据就会扩大很多,如果仍然用float类型存,就会丢失精度
Description
Input
Output
Sample Input
Sample Output
#include <stdio.h> int main() { int n, case_num = 1; double x, y; int t; scanf("%d", &n); while(n--) { scanf("%lf%lf", &x, &y); double S = 3.1415926*(x*x + y*y)/2.0; t = (S / 50.0) + 1; printf("Property %d: This property will begin eroding in year %d.\n", case_num++, t); } printf("END OF OUTPUT.\n"); return 0; }
G - I Think I Need a Houseboat(简单题,粘贴下来是因为数据精度需要注意)
标签:
原文地址:http://www.cnblogs.com/rain-1/p/4941580.html