这道题是一个sscanf()的用法~
范例
#include
main()
{
int i;
unsigned int j;
char input[ ]=”10 0x1b aaaaaaaa bbbbbbbb”;
char s[5];
sscanf(input,”%d %x %5[a-z] %*s %f”,&i,&j,s,s);
printf(“%d %d %s ”,i,j,s);
}
执行 10 27 aaaaa
函数用法,参见这里~
http://www.cnblogs.com/kangwang1988/archive/2011/06/06/2073801.html
Average is not Fast Enough!
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2966 Accepted Submission(s): 1153
You have to process several teams. For each team you are given a list with the running times for every section of the race. You are to compute the average time per kilometer over the whole distance. That's easy, isn't it?
So if you like the fun and challenge competing at this contest, perhaps you like a relay race, too. Students from Ulm participated e.g. at the "SOLA" relay in Zurich, Switzerland. For more information visit http://www.sola.asvz.ethz.ch/ after the contest is over.
2 12.5 5 0:23:21 0:25:01 42 0:23:32 -:--:-- 7 0:33:20 0:41:35
5: 3:52 min/km 42: - 7: 6:00 min/km
#include <iostream>
using namespace std;
int main()
{
int f, n, i, a, sum, h, m, s;
double d;
char c[20], t[100];
scanf("%d%lf", &n, &d);
while (~scanf("%d", &a))
{
sum = f = 0;
for (i=1;i<=n;++i)
{
scanf("%s", c);
if (c[0] == '-') f = 1;
sscanf(c, "%d:%d:%d", &h, &m, &s);
sum += h*3600 + m*60 + s;
}
if (f) printf("%3d: -\n", a);
else
{
sum = int(sum/d + 0.5);
printf("%3d: %d:%2.2d min/km\n", a, sum/60, sum%60);
}
}
return 0;
}