杭电OJ——1036 Average is not Fast Enough!
Average is not Fast Enough!
Problem Description
A relay is a race for two or more teams of runners. Each member of a team runs one section of the race. Your task is to help to evaluate the results of a relay race.
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.
Input
The first line of the input specifies the number of sections n followed by the total distance of the relay d in kilometers. You may safely assume that 1 <= n <= 20 and 0.0 < d < 200.0. Every following line gives information about one team: the team number t (an integer, right-justified in a field of width 3) is followed by the n results for each section, separated by a single space. These running times are given in the format "h:mm:ss" with integer numbers for the hours, minutes and seconds, respectively. In the special case of a runner being disqualified, the running time will be denoted by "-:--:--". Finally, the data on every line is terminated by a newline character. Input is terminated by EOF.
Output
For each team output exactly one line giving the team's number t right aligned in a field of width 3, and the average time for this team rounded to whole seconds in the format "m:ss". If at least one of the team's runners has been disqualified, output "-" instead. Adhere to the sample output for the exact format of presentation.
Sample Input
2 12.5
5 0:23:21 0:25:01
42 0:23:32 -:--:--
7 0:33:20 0:41:35
Sample Output
5: 3:52 min/km
42: -
7: 6:00 min/km
题目意思我看了半天才看懂!看来要好好学英语了!
代码如下:
[cpp]
//这个程序虽然比较小,但是包含的各种技能还是很多的!
/*
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int n,sumtime,num;
double d;
char h,m1,m2,s1,s2;
scanf("%d",&n);
scanf("%lf",&d);
while(scanf("%d",&num)!=EOF)//题目意思是对于每个队伍便输出答案
{
printf("%3d ",num);
bool flag=true;
sumtime=0;
for(int i=0;i<n;i++)
{
getchar();
scanf("%c:%c%c:%c%c",&h,&m1,&m2,&s1,&s2);
if(h=='-') flag=false;
if(flag==false) continue;//这里如果输入了"-:--:--",那么接下来就不用计算了!
sumtime=sumtime+(h-'0')*3600+((m1-'0')*10+(m2-'0'))*60+(s1-'0')*10+s2-'0';
}
//cout<<sumtime<<endl;//这里计算总时间是正确的!
if(flag)
{
int t2=sumtime/d+0.5;//这里算出来了平均每走一千米所需要的时间(s),这里由于数据的缘故需要四舍五入!
//cout<<"t2="<<t2<<endl;
if(t2-t2/60*60<10)
printf("%d:0%d min/km\n",t2/60,t2-t2/60*60);
else
printf("%d:%d min/km\n",t2/60,t2-t2/60*60);
}
else
printf("-\n");
}
return 0;
}
*/
//我想要测试一下所遇到的一些问题!
#include<stdio.h>
int main()
{
int num;
while(scanf("%d",&num)!=EOF)//测试结果表明:无论之前输入多少个空格都不会被记入num,一次输入多个num的值,这些值会被入栈!然后再执行!这和之前课程设计时遇到的情况是一样的!
{
printf("%d\n",num);
}
return 0;
}
//还有一点关于AC题的,那就是输入和答案是分开的,AC的只检测答案!
补充:软件开发 , C++ ,