循环控制~救援
题目描述:
输入:
第一行,一个整数,表示屋顶数n。
接下来依次有n 行输入,每一行上包含两个表示屋顶相对于大本营的平面坐标位置的实数(单位是米)、一个表示人数的整数,数之间以一个空格分
开。
输出:
一行,救援需要的总时间,精确到分钟 (向上取整)。
1 #include<stdio.h> 2 #include<math.h> 3 int main(){ 4 int n; //有几个屋顶 5 scanf("%d",&n); 6 double a,b; //屋顶的坐标 7 //d[100]warning??,应输入一个语句 8 // int d[100]; 9 int m; //一个屋顶上的人数 10 //int c[100]; //勾股定理求得的营地与屋顶的直线距离 11 double c; 12 double min; 13 //int sum=0; 14 for(int i=1;i<=n;i++){ 15 scanf("%lf %lf %d",&a,&b,&m); 16 //d[i]=a*a+b*b; 17 c=sqrt(a*a+b*b); 18 min=min+c/50.0*2+m+m*0.5; 19 //利用函数向上取整 20 21 //sum=min; 22 // printf("%d",sum); 23 // printf("%lf",min); 24 // if(min-sum>0){ 25 // min=min+1; 26 // } 27 // printf("%.0lf",min); 28 29 30 } 31 min=ceil(min); 32 printf("%.0lf\n",min); 33 return 0; 34 }
solution:
1 题意理解错误:以为要分别输出每个屋顶的救援时间但其实只用输出救援的总时间
2 向上取整函数:ceil(double);
3 求平方根的函数sqrt(); ---都要引入头文件<math.h>
4 变量的类型:
因为最后涉及到向上取整,说明不是整型,对应的涉及到的变量就应该用double型
5 不需要用到一维数组来存储中间的数;