第一次作業


一· 7-7 計算火車運行時間 (15 分)

本題要求根據火車的出發時間和達到時間,編寫程序計算整個旅途所用的時間。

輸入格式:

輸入在一行中給出2個4位正整數,其間以空格分隔,分別表示火車的出發時間和到達時間。每個時間的格式為2位小時數(00-23)和2位分鍾數(00-59),假設出發和到達在同一天內。

輸出格式:

在一行輸出該旅途所用的時間,格式為“hh:mm”,其中hh為2位小時數、mm為2位分鍾數。

輸入樣例:

1201 1530

輸出樣例:

03:29
1.實驗代碼
#include<stdio.h>
int main()
{
    int a, b, h1, h2, m1, m2, h, m;
    scanf("%d %d", &a, &b);
    h1 = a/100;
    h2 = b/100;
    m1 = a%100;
    m2 = b%100;
    if(m2 < m1)
    {
        m = m2+60-m1;
        h = h2-h1-1;
    }else 
    {
        m = m2-m1;
        h = h2-h1;
    }
    printf("%02d:%02d", h, m);
    return 0;
}

2.設計思路

(1) 文字描述

第一步:輸入的是四位數,前倆位為小時后倆位是分鍾,小時是四位數除以100取整,分鍾是四位數除以100取余。

第二步:判斷分鍾相減是否小於零,如果小於零需要從小時借位。不小於零輸出旅途所用時間。

第三步:在借位時,借的是60而不是100,借位后繼續計算然后輸出旅途所用時間。

(2)流程圖

3.本體調試過程碰到問題及解決方法

認真閱讀這道題目后,我發現這道題有幾個地方必須要過關。

1.小時與分鍾的選取  2.判斷分鍾是否夠用  3.當后者分鍾過小時需要錯位,而錯位是60

4.輸出時小時與分鍾格式為hh:mm

在做題時我就遇到了輸出格式錯誤的問題,我輸出是h:mm型不符合題目要求。

后來向同學請教如何輸出hh:mm型,最后知道輸出時要保證是倆位要用“%.2d”,而我用的卻是“%d”。

二·7-4 求奇數和 (15 分)

本題要求計算給定的一系列正整數中奇數的和。

輸入格式:

輸入在一行中給出一系列正整數,其間以空格分隔。當讀到零或負整數時,表示輸入結束,該數字不要處理。

輸出格式:

在一行中輸出正整數序列中奇數的和。

輸入樣例:

8 7 4 3 70 5 6 101 -1

輸出樣例:

116
1.實驗代碼
#include<stdio.h>
int main()
{
    int x, i = 0;
    scanf("%d", &x);
    while(x>0)
    {
        if(x % 2 == 1)
        {
            i = i + x;
        }
        scanf("%d", &x);
    }
    printf("%d", i);
    
    return 0;
}

2.設計思路

(1)文字描述

第一步:輸入整數x,輸入奇數和為i

第二步:判斷x是否為正整數

第三步:判斷x是否為奇數

第四步:求出所有奇數和,輸出i

(2)流程圖

3.本體調試過程碰到問題及解決方法

循環是學習C語言的重點與難點。

然而這道題我卻犯了一個低級錯誤,弄混“=”與“==”的意義,經過自己的反省找到正確答案。

這道題在循環1里算是簡單的,拿到這里把錯誤寫出來是為了時刻提醒自己不可以犯同樣錯誤。

 

三·7-7 尋找250 (10 分)

 

對方不想和你說話,並向你扔了一串數…… 而你必須從這一串數字中找到“250”這個高大上的感人數字。

輸入格式:

輸入在一行中給出不知道多少個絕對值不超過1000的整數,其中保證至少存在一個“250”。

輸出格式:

在一行中輸出第一次出現的“250”是對方扔過來的第幾個數字(計數從1開始)。題目保證輸出的數字在整型范圍內。

輸入樣例:

888 666 123 -233 250 13 250 -222

輸出樣例:

5

 1.實驗代碼

#include<stdio.h>
int main()
{
    int x;
    char a[999];
    scanf("%d", &x);
    int i = 1;
    while(x != 250)
    {
        scanf("%d", &x);
        i++;
    }
    printf("%d", i);
    return 0;
}

2.設計思路
(1)文字描述

第一步:構造一個數列

第二步:給x賦值並構造一個循環變量i

第三步:讓其循環,當x = 250 時輸出i的值

(2)流程圖

3.本體調試過程碰到問題及解決方法

認真閱讀題目后,我自我感覺這道題很簡單,但是在開始敲代碼時我發現我錯了,在面對這道題時我發現我無從下手。

直到后來我查閱資料知道可以構造一個數列完成。解決這一問題后我豁然開朗,但還是把“!=”與“=!”整混了,

后來自己多次嘗試並向同學請教得知“!=”是不等於。

 四·總結

從最開始的“Hello Word”開始了解編程,讓我受益匪淺,慢慢喜歡上編程。

1.所學內容

在這幾周的學習中,我學習到每個代碼開始都要有一個頭文件,結束時要有“return 0”,在求平均數保留小數時不能忘了乘1.0,這個很容易讓人忘記,應該牢記。

在循環學習中,我深入了解了while,do while,for循環的使用。for語句在使用時()里面應該用“;”間隔,而我經常犯錯用“,”間隔。

一個數的幾次冪在電腦中要用pow表示,在使用數學公式時需要插入數學的頭文件。我也了解了基本函數的使用。

2..遇到問題及解決方法

1·在編程中“=”為賦值的意思,而“==”為等於的意思,我經常把“=”當成等於使用。

2·在輸入一個數讓其小於等於x時,總是在小於等於加一個空格。

3·總是忘記保留小數,直接%d輸出。

以上問題都是一些小問題,但導致問題所在還是練習代碼較少,因此我應多練習,避免不應該放錯誤。

在遇到不會問題時,應該多思考,及時向老師與同學請教。

五·點評

1.點評阮曙光同學 https://www.cnblogs.com/diqiu/p/10041671.html

2.點評李曉旭同學 https://www.cnblogs.com/lixiaoxu695022762/p/9999202.html

3.點評蘇末然同學https://www.cnblogs.com/smr2018023977/p/10035661.html

 

 


免責聲明!

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



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