给出几个人的成绩,以及路程,求出速度min/km
字符串时间相加问题,关键就是处理进位,四舍五入比较麻烦,注意点
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char s[1000][10];
int len,i,j,n,num,a[10],flag;
double sum,l,t,t1,v,v1;
while(scanf("%d%lf",&n,&l)!=EOF)
{
while(scanf("%d",&num)!=EOF)
{
flag=0;
memset(a,0,sizeof(a));
for(i=0;i<n;i++)
scanf("%s",s[i]);
for(i=0;i<n;i++)
{
if(s[i][0]=='-')
{flag=1;break;}
else
{
a[0]=0;
for(j=0;s[i][j]!=':';j++)//(找到第一个:就结束小时的运算)
{
a[0]*=10;
a[0]+=s[i][j]-'0';
}
a[1]+=a[0];
a[2]+=(s[i][j+1]-'0')*10+(s[i][j+2]-'0');//把分钟对用数转换
a[3]+=(s[i][j+4]-'0')*10+(s[i][j+5]-'0');//秒对应的转换成整数
}
}
if(flag)printf("%3d: -\n",num);
else
{
t=a[1]*1.0*60+a[2]*1.0+a[3]*1.0/60;
v=t/l;v1=(v-(int)v)*60;//v为分钟数,小数部分v1即为秒数
if(v1-(int)v1>=0.5)v1+=1;//v1的四舍五入
if((int)v1>=60){v1-=60;v+=1;}
printf("%3d: %d:%02d min/km\n",num,(int)v,(int)v1);
}
}
}
return 0;
}