【题目大意】弗雷德先生正在考虑在路易斯安娜州买一块地造房子,在土地调查中,他了解到由于密西西比河的侵蚀,路易斯安那州正以每年50平方英里的速度变小。弗雷德先生想知道他买的那块地是否会被侵蚀掉,经过进一步的研究,弗雷德先生发现将要被侵蚀的土地为半圆形,半圆是一个以(0,0)为中心的圆的一半,半圆的直边是x轴。x轴以下的部分在水中,第一年开始时,圆的面积是0,半圆如图所示。第一行输入一个整数n,表示有几组测试数据,接下来有n行,每行是(x,y)的坐标,弗雷德正在考虑地皮的位置,坐标值是以英里为单位的浮点数,坐标y不会为负数,这两个数不会都为0,输出经过多少年后,弗雷德的房子会被淹没。
分析:
先计算半径,再去计算面积,最后得出结果(年份)
代码:
#include<stdio.h> #include<math.h> int main() { int i = 1, n; int year; double x, y, r, area, pi =3.14; scanf("%d", &n); while(n--) { scanf("%lf %lf", &x, &y); r = x * x + y * y; area = pi * r / 2.0; year = (int)ceil(area / 50.0);//ceil函数是取整函数,舍去小数。 printf("Property %d:", i++); printf(" This property will begin eroding in year %d. ", year); } printf("END OF OUTPUT. "); return 0; }
看懂题就好写了,最后被一个空格个弄晕了。