题目详情 - L1-043 阅览室 (20 分) (pintia.cn)
code:
#include<stdio.h>
#include<string.h>
int main(){
int i,cnt=0,day,t_sum=0;
struct BOOK{
int a,hh,mm,t;
char b;
int flag;
}c[1001];
scanf("%d",&day);
while(day--){
cnt=t_sum=0;
while(1){
scanf("%d",&i);
getchar();
scanf("%c %d:%d",&c[i].b,&c[i].hh,&c[i].mm);
if(i==0){
if(cnt==0) printf("0 0\n");
else printf("%d %d\n",cnt,(int)(1.0*t_sum/cnt+0.5));
break;
}
if(c[i].b=='S'){
c[i].flag=1;
c[i].t=-(c[i].hh*60+c[i].mm);
}
if(c[i].b=='E'&&c[i].flag==1){
cnt++;
c[i].t+=c[i].hh*60+c[i].mm;
t_sum+=c[i].t;
c[i].t=c[i].flag=0;
}
}
}
return 0;
}
总结:
1. 输入书号后,需要加一个getchar取掉空格,不然就被下一个取字符的scanf吃掉。
2. 初始化结构时,顺序不重要。元素有用没用的都可以加,可以编译。
3.个位的初始化:(int)(1.0*t_sum/cnt+0.5);