zoukankan      html  css  js  c++  java
  • 题目1013:开门人和关门人----没有AC掉

    首先,承认这道没有太大的难度,但是有好多值得学习的地方:

    我的WA:正确的结果,但是runtime error 的问题;

    #include<stdio.h>
    #include <stdlib.h>
    #include<string.h>
    int main()
    {
    	int N,M;
    	scanf("%d",&N);
    	 if (N==0) return 0;
    	while(N--)
    	{
    		scanf("%d",&M); 
    		char num[15],tem_num1[15],tem_num2[15];
    		int h1,m1,s1,h2,m2,s2;
    		int tem=0,tem1=0,tem2=0;
    		for (int i=0;i<M;i++) 
    		{
    		    scanf("%s %d:%d:%d",&num,&h1,&m1,&s1); 值得学习的输入方法
    			int tem=h1*3600+m1*60+s1;
    			if (tem1>=tem) 
    			{
    			    tem1=tem;strcpy(tem_num1,num);
    			}
    			
    			scanf("%d:%d:%d",&h2,&m2,&s2);
    			int tem1=h2*3600+m2*60+s2;
    			if (tem2<=tem1)
    			{
    				tem2=tem1;strcpy(tem_num2,num);
    			}	
    		}
    		printf("%s %s
    ",tem_num1,tem_num2);
    	}
    	return 0;
    } 
    

      

    改了很多次,还是WA,只好借鉴大神的了:http://blog.csdn.net/sjf0115/article/details/7701901

    思路是一样的,就是用的数组;

     
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    int main()
    {
    	int N,M;
    	//输入重定向,输入数据将从in.txt文件中读取
    	//freopen("C:\Users\SJF\Desktop\in.txt","r",stdin); 
        while(scanf("%d",&N)!=EOF)
        {   
    		int i,j;
    		int in = 0,out = 0;
    		int hour,minute,second,inTime[100],outTime[100];
    		char ID[100][100];
    		for(i = 0;i<N;i++){
    			scanf("%d",&M);
    			for(j = 0;j<M;j++){
    				scanf("%s %d:%d:%d",&ID[j],&hour,&minute,&second);
    				inTime[j] = hour*3600 + minute*60 + second;
    				if(inTime[j] < inTime[in]){
    					in = j;
    				}
    				scanf("%d:%d:%d",&hour,&minute,&second);
    				outTime[j] = hour*3600 + minute*60 + second;
    				if(outTime[j] > outTime[out]){
    					out = j;
    				}
    			}
    			printf("%s %s
    ",ID[in],ID[out]);
    		}
        }
        return 0;
    }
    

    还有一个c++的简洁的版本:http://www.cnblogs.com/simplelifestyle/p/3761882.html

    值得学习::

    #include<iostream>  
    #include<string>  
    using namespace std;  
    int main()  
    {  
        int n;  
        cin>>n;  
        for(int j=0;j<n;j++)  
        {  
            int count=0;  
            cin>>count;  
            string str[10000][3]={""};  
            int min=0,max=0;  
            cin>>str[0][0]>>str[0][1]>>str[0][2];  
            for(int i=1;i<count;i++)  
            {  
                cin>>str[i][0]>>str[i][1]>>str[i][2];  
                if(str[i][1].compare(str[min][1])<0)min=i;  
                if(str[i][2].compare(str[max][2])>0)max=i;  
            }  
            cout<<str[min][0]<<' '<<str[max][0]<<endl;  
        }  
        return 0;  
    

      

  • 相关阅读:
    高并发系统设计(十九)【注册中心】:微服务架构结合RPC框架如何做到分布式系统寻址?
    高并发系统设计(十八):【RPC框架】10万QPS下如何实现毫秒级的服务调用?
    you-get 库的使用方法
    vue 全局注册signalr
    将Minio.exe注册成windows服务
    NPOI 常用方法封装
    利用NPOI给excel文件中添加图片
    Oss 对象服务存储前端方法封装
    C# 常用方法扩展及封装记录
    PostgreSQL配置密码复杂度策略
  • 原文地址:https://www.cnblogs.com/jianrenguo/p/6444194.html
Copyright © 2011-2022 走看看