POJ3751 注意格式控制

来源:互联网 发布:如何下载cad软件 编辑:程序博客网 时间:2024/06/05 10:46

1 题意,中文题。

2 分析。

注意格式控制。

①格式读入,scanf("%d/%d/%d-%d:%d:%d",&yy,&mm,&dd,&h,&m,&s);

②%04d,输出4位,若不够,则补0

printf("%02d/%02d/%04d-%02d:%02d:%02d%s\n",mm,dd,yy,h,m,s,time[pm]);

下面两个代码有鲜明的对比,良好的控制格式的读入和输出,会让思路更加清晰。

3

代码一

#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int main(){    int yy,mm,dd,h,m,s;    int kk;    char time[2][19]={"am","pm"};    while(~scanf("%d",&kk)){        for(int i=1;i<=kk;i++){            scanf("%d/%d/%d-%d:%d:%d",&yy,&mm,&dd,&h,&m,&s);            int pm=0;            if(h==0){                h=12;            }            else if(h==12){                pm=1;            }            else if(h>=13&&h<=23){                h-=12;pm=1;            }            printf("%02d/%02d/%04d-%02d:%02d:%02d%s\n",mm,dd,yy,h,m,s,time[pm]);        }    }}

代码二

#include <iostream>#include <stdio.h>#include <string.h>using namespace std;const int maxn=100;int main(){    int t;    scanf("%d",&t);    while(t--){        char time[maxn];        scanf("%s",time);        for(int i=5;i<=9;i++){            cout<<time[i];        }        cout<<"/";        for(int i=0;i<=3;i++){            cout<<time[i];        }        cout<<"-";        int hour=time[11]-'0';        hour=(hour*10)+(time[12]-'0');        int pm=0;        if(hour>=13&&hour<=23){            hour-=12;            if(hour<=9)                cout<<"0"<<hour<<":";            else{                cout<<hour<<":";            }            pm=1;        }        else if(hour==0){            cout<<"12:";        }        else if(hour==12){            cout<<"12:";            pm=1;        }        else{            if(hour<=9)                cout<<"0"<<hour<<":";            else{                cout<<hour<<":";            }        }        for(int i=14;i<=15;i++){            cout<<time[i];        }        cout<<":";        for(int i=17;i<=18;i++){            cout<<time[i];        }        if(pm)cout<<"pm"<<endl;        else    cout<<"am"<<endl;    }}




0 0
原创粉丝点击