HDOJ 1036 Average is not Fast Enough!
本题解题时考虑每组数据出现情况中不够全面,在判断中使用break;导致在遇到类似 42 -:--:-- 0:23:32的数据时出现问题。 由于遇到 -:--:--时break,导致后面的数据无法输入,所以出错。切记注意慎用break,并注意break对后续输入的数据的影响。感谢CSDN的logiciel给予的帮助与解答,谢谢!
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <stdio.h>
2 #include <string>
3 #include <iostream>
4 using namespace std;
5 int main()
6 {
7 int Num=0;
8 float Total=0.0;
9 //freopen("test.txt","r",stdin);
10 scanf("%d",&Num);
11 scanf("%f",&Total);
12 int AltNum=0;
13 while(scanf("%d",&AltNum)!=EOF)
14 {
15 int temp1,temp2,temp3;
16 bool flag=1;
17 double sum=0;
18 string str;
19 for (int i=0;i<Num;i++)
20 {
21 cin>>str;
22 if(str[0]=='-')
23 {
24 flag=0;
25 //break;
26 }
27 sscanf(str.c_str(),"%d:%d:%d",&temp1,&temp2,&temp3);
28 sum+=(temp1*3600+temp2*60+temp3);
29 }
30 if(flag)
31 printf("%3d: %d:%02d min/km/n",AltNum,(int)(sum/Total+0.5)/60,(int)(sum/Total+0.5)%60);
32 else
33 printf("%3d: -/n",AltNum);
34 }
35 return 0;
36 }