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'));
                                }
    
    评论

报告相同问题?

悬赏问题

  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示