C語言——然后是幾點


有時候人們用四位數字表示一個時間,比如1106表示11點零6分。現在,你的程序要根據起始時間和流逝的時間計算出終止時間。

讀入兩個數字,第一個數字以這樣的四位數字表示當前時間,第二個數字表示分鍾數,計算當前時間經過那么多分鍾后是幾點,結果也表示為四位數字。當小時為個位數時,沒有前導的零,即5點30分表示為530。注意,第二個數字表示的分鍾數可能超過60,也可能是負數。

輸入格式:

輸入在一行中給出2個整數,分別是四位數字表示的起始時間、以及流逝的分鍾數,其間以空格分隔。注意:在起始時間中,當小時為個位數時,沒有前導的零,即5點30分表示為530;流逝的分鍾數可能超過60,也可能是負數。

輸出格式:

輸出四位數字表示的終止時間,當小時為個位數時,沒有前導的零。題目保證起始時間和終止時間在同一天內。

輸入樣例:

1120 110
 

輸出樣例:

1310

#include <stdio.h>

int main()

{
    int t,h,m,a;
    int b,c;
    scanf("%d %d",&t,&a);
    h=t/100;
    m=t%100;
    if(a<0){
        a *= -1;
        b=a/60;
        c=a%60;
        printf("%d,%d\n",b,c);
        if(h>b){
            h=h-b;
            if(m>c){
                m=m-c;
            }
            else{
                m=m+60-c;
                h=h-1;
            }
        }
        else{
            h=h+24-b;
            if(m>c){
                m=m-c;
            }
            else{
                m=m+60-c;
                h=h-1;
            }
        } 
        if(h>9){
            printf("%d%02d\n",h,m);
        }
        else{
            printf("%d%d\n",h,m);
        }
    }
    else{
        b=a/60;
        c=a%60;
        printf("%d,%d\n",b,c);
        if(h>1){
        h=h+b;
            if(h>24){
                h=h-24;
            }
            m=m+c;
                if(m>60){
                    h++;
                    m=m-60;
                } 
        }
        else{
            m=m+c;
        }
        if(h>9){
            printf("%d%02d\n",h,m);
        }
        else{
            printf("%d%d\n",h,m);
        }
    }
    
    return 0;
}

 

 總結:代碼看起來有些復雜,但是思路是順着來的。搜了一下發現還有一種方法就是先換算成分鍾,算出來后再得結果,看完發現自己太傻了,思維太局限,換算分鍾的方法就簡單的多了,有時間我再試試。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM