Ones' 2017-04-20 14:39 采纳率: 0%
浏览 761

杭电acm1036,为什么wa

附上我的代码以及AC代码

#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
int main()
{
    int n,t,m,ss,flag;
    double d,sum,temp;
    string T;
    cin>>n>>d;
    if(n<1||n>20)return 0;
    if(d<0.0||d>200.0)return 0;
    while(cin>>t)
    {
        sum=0,flag=0;
        for(int i=0;i<n;i++)
          {
              cin>>T;
              if(T=="-:--:--")
              {
                  cout<<setw(3)<<t<<": -"<<endl;
                  flag=1;
                  break;
              }
              sum+=((T[0]-'0')*3600+((T[2]-'0')*10+(T[3]-'0'))*60+(T[5]-'0')*10+(T[6]-'0'));
          }
        if(!flag)
        {
            sum/=d;
            temp=(int)(sum+0.5);
            m=temp/60;
            ss=temp-m*60;
            if(ss>10)
                cout<<setw(3)<<t<<": "<<m<<":"<<ss<<" min/km"<<endl;
            else
                cout<<setw(3)<<t<<": "<<m<<":"<<'0'<<ss<<" min/km"<<endl;
        }
    }
}

AC代码

#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
    char s[10];
    int n,H,MM,SS,T;
    double dist,tot,ave;
    scanf("%d%lf",&n,&dist);
    while(~scanf("%d",&T))
    {
        tot = 0.0;
        bool flag = true;
        for(int i = 0;i < n;i++)
        {
            scanf("%s",s);
            if(!strcmp(s,"-:--:--")){
               flag = false;
            }else
            {
               sscanf(s,"%d:%d:%d",&H,&MM,&SS);   
               tot += H*3600.0 + MM*60.0 + SS*1.0;  
            }
        }
        if(flag == false){
          printf("%3d: -\n",T);
        }else
        {
            ave = tot / dist;
            int ans = floor(ave+0.5);
            printf("%3d: %d:%02d min/km\n",T,ans/60,ans%60);
        }
    }
    return 0;
}
  • 写回答

1条回答

  • shen_wei 2017-04-21 02:14
    关注
     if(T=="-:--:--")
                  {
                      cout<<setw(3)<<t<<": -"<<endl;
                      flag=1;
                      break;
                  }
                                else
                                {
                                    sum+=((T[0]-'0')*3600+((T[2]-'0')*10+(T[3]-'0'))*60+(T[5]-'0')*10+(T[6]-'0'));
                                }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记