题目1022:游船出租
结果四舍五入:先转化为浮点数,在看差值决定要不要加一。
/*
*/
#include<stdio.h>
#include<math.h>
int cnt,time;
struct E{
int begin;
int end;
}boat[101];
void init()
{
cnt=0;time=0;
int i;
for(i=1;i<101;i++){ //船的编号从0-->100.
boat[i].begin=-1;
boat[i].end=-1;
}
}
int main()
{
//freopen("G:\\in.txt","r",stdin);
int num,hour,min;
char ch;
init();
while(1){
scanf("%d",&num);
getchar();
if(num==-1) break;
//输入数字后要想输入字符,必须加个getchar(),抵掉回车;
scanf("%c%d%*c%d",&ch,&hour,&min); //%d %c%d可以跳过%d与%c之间任意多的空格,取第一个非空格赋值给ch;
//%d%c%d此格式%d与%c之间不允许有空格,空格也要赋值给ch;
if(num==0){
if(cnt==0)
printf("0 0\n"); //等于0不能直接做除法,会溢出。!!
else{
double tmpTime=(double)time;
double ans=tmpTime/cnt;
int answer;
if(ans-time/cnt<0.5)
answer=time/cnt;
else
answer=time/cnt+1;
printf("%d %d\n",cnt,answer);
}
init();
continue;
}
if(ch=='S')
boat[num].begin=hour*60+min;
if(ch=='E'){
boat[num].end=hour*60+min;
if(boat[num].begin!=-1){
cnt++;
time=time+boat[num].end-boat[num].begin;
boat[num].begin=boat[num].end=-1;
}
else
boat[num].end=-1;
}
}
return 0;
}