#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char n[9999];
main()
{
float temp,temp2,temp1;
int a,b,ans,n1,flag,flag1;
while(gets(n)!=0)
{
temp1=0;temp2=0;temp=0;flag=-1;flag1=0;ans=0;
for(a=0;a<=strlen(n);a++)
{
n1=n[a];
if(n[a]<=57&&n[a]>=48||n[a]=='.')
{
if(flag1!=0&&n[a]=='.')
{n1=n[a+1];temp=temp+(n1-48)/10.0;a++;continue;}
if(flag1!=0&&n[a]!='.')
temp=temp*10+n1-48;
if(flag1==0)
{ans=ans*10+n1-48;}
}
else if(n[a]==':')
{
if(ans%2==0) flag=0;
else flag=1;
flag1=1;
ans=0;
temp=0;
}
else
{
if(flag==0)
temp1=temp1+temp;
else
temp2=temp2+temp;
flag1=0;
flag=-1;
temp=0;
}
}
printf("%.1f\n",temp2-temp1);
}
return 0;
}
自己測試沒問題 難道是我沒注意到其他的可能性?