zoukankan      html  css  js  c++  java
  • 蓝桥杯错误数据——运行超时(末尾文件结束)

    一开始的代码,运行超时

    #include<iostream>
    #include<cmath>
    #include<cstdio>
    #include<algorithm>
    #include<string>
    #include<cstring>
    using namespace std;
    int a[105];
    int main()
    {
       int n;
       cin>>n;
       int j=0;
       a[0]=0;    
       for(int i=0;i<n;i++)
       { 
          j++;
            cin>>a[j];
             while(cin.get()!='
    ') 
             {
                 j++;
                 cin>>a[j];
          }
       }
       //有j个 
       sort(a,a+j+1);
       int shao=0;
       int duo=0;
       for(int i=1;i<j+1;i++)
       {
              if(a[i]==a[i+1])
              duo=a[i];
           if(i!=1&&i!=j&&(a[i]==a[i-1]+1)&&(a[i]==a[i+1]-2))
            shao=a[i]+1; 
       }
       cout<<shao<<" "<<duo<<endl;
       return 0;
     } 

    问题在于每行的结尾,在每行输入完后,你需要判断最后的字符是否为换行读取结束(EOF)

    数据输入完毕,判断是否读取结束(EOF)

    修改后

    #include<iostream>
    #include<cmath>
    #include<cstdio>
    #include<algorithm>
    #include<string>
    #include<cstring>
    using namespace std;
    int a[105];
    int main()
    {
       int n;
       cin>>n;
       int j=0;
       while(cin>>a[j++]);
       //有j个 
       sort(a,a+j);
       int shao=0;
       int duo=0;
       for(int i=1;i<j;i++)
       {
              if(a[i]==a[i-1])
              duo=a[i-1];
         else//注意要把这个地方写上else,要不然重复的也会改变shao的值 
           if(a[i]!=a[i-1]+1)
            shao=a[i-1]+1; 
       }
       cout<<shao<<" "<<duo<<endl;
       return 0;
     } 
  • 相关阅读:
    CTreeCtrl::HitTest
    GetLastError()函数返回值及含义
    最大轮廓和投影 转
    一些Python黑客脚本
    win10系统架构调用
    rootkit基础
    面向对象编程
    机器学习概述
    XXE攻击
    浏览器安全
  • 原文地址:https://www.cnblogs.com/h694879357/p/12259289.html
Copyright © 2011-2022 走看看