第一次作業


---恢復內容開始---

一.計算機18秋_分支結構 7-7 計算火車運行時間

  1.實驗代碼 

#include<stdio.h>
#include<math.h>
int main()
{
    int a,b,c,d;//定義出發時間,到達時間,所用分鍾,所用小時
    scanf("%d%d",&a,&b);//輸入出發時間,到達時間
        c=b%100-a%100;//所用分鍾,可能是負數
        d=b/100-a/100;//所用小時,一定是正數
        if(c<0)//判斷c的正負
        {
        c=c+60;
        d=d-1;
       }//c一定為正數,所以分鍾c=c+60;小時d=d-1;
        printf("%02d:%02d",d,c);
    
    return 0;
}

  2.設計思路

    (1)文字描述

      第一步:定義出發時間a,到達時間b,所用的分鍾c,小時d。

      第二步:用到達時間前兩位減去出發時間前兩位表示所用的小時數d

      第三步:用到達時間的后兩位減去出發時間后兩位表示所用的分鍾數c

      第四步:出發時間和到達時間為同一天,時間為24小時制,所以的d>=0。

      第五步:存在c<0的情況,按題目要求c>=0,所以從d中取1,加在c中,即c=c+60;b=b-1;

    (2)流程圖

 

  3.錯誤提示

 

 

(1)定義的c,d弄混

(2)先相減后取余,和取整

 

  4.解決辦法

   (1)仔細閱讀題意,從頭捋順代碼,整理思路。

   (2)先相減后取整或取余,和先取余或取整例再相減的結果不一樣,如:(16-9)%3=2;16%3-9%3=1 兩個式子結果並不一樣,而題中需要的是后者,我先前的做法是錯誤的。

二.計算機18秋_循環1  7-4 求奇數和

  1.實驗代碼

#include<stdio.h>
int main()
{
int a,sum=0;//定義輸入數a,奇數和sum
scanf("%d",&a);
while(a>0)//當a>0是讀入
{
if(a%2!=0)//判斷a是否為奇數
{
sum=sum+a;//奇數和
}
scanf("%d",&a);//不能缺少,沒有這句,代表只輸入一個大於0的數,就是死循環(重點)
}
printf("%d",sum);
return 0;
}

 2.設計思路

    (1)文字描述

      第一步:定義輸入數a,奇數和sum=0

      第二步:輸入a,並判斷a的值

      第三步:如果a>0,執行循環

      第四步:在循環中判斷a是否為奇數

      第五步:是則sum=sum+a

    (2)流程圖

 

   3.錯誤提示

  (1)取地址符號總是遺忘

  (2)插入代碼中標注(重點)的地方,按常規思路想很自然就舍去了

 4.解決辦法

   (1)仔細閱讀題意,從頭捋順代碼,整理思路。

   (2) 詢問助教,知道了,不能缺少,沒有這句,代表只輸入一個大於0的數,就是死循環

三.計算機18秋-循環2 7-6 作品評分

   1.實驗代碼

#include<stdio.h>
#include<math.h>
int main()
{
    int n,i;//定義評委數n
    float x,max,min,a,b,sum=0;//定義分數x,最大值max,最小值min,去掉最高分和最低分的總成績a,平均分b,總分sum
    scanf("%d\n",&n);
    for(i=1;i<=n;i++)//執行循環
    {
        scanf("%f",&x);
        sum=sum+x;//求總成績
        if(i==1)
        {
            min=x;
            max=x;
        }//給max,min賦值,以便下面的比較
        if(x>max)
        {
            max=x;
        }//求最大值
        if(x<min)
        {
            min=x;
        }//求最小值
    } 
    a=sum-min-max;//去掉最高分和最低分的總成績
    b=a/(n-2);//平均分
    printf("%.2f",b);
     return 0; 
}

2.設計思路

    (1)文字描述

      第一步:定義評委數n,分數x,最大值max,最小值min,去掉最高分和最低分的總成績a,平均分b,總分sum

      第二步:求所有分數和sum

      第三步:給max,min賦值

      第四步:比較大小求出max,min,並用sum-max-min求得去掉最高分和最低分的總成績a

      第五步:求平均分b=a/(n-2)

   (2)流程圖

3.錯誤提示

 

  (1)max,min 判斷是符號弄反

  (2)if判斷句中if()中等於寫成一個=

4.解決辦法

   (1)仔細閱讀題意,從頭捋順代碼,整理思路。

    (2)翻閱書籍,if判斷句中if()中等於要寫成==

四.總結

  1.總結

  a.所學內容

  (1)有關分支結構的一些必要步驟

  (2)有關for,while,do while循環的一些知識

 b.遇到問題

  (1)運用for, while, do while不熟練

  (2)不知道怎么四舍五入

  (3)不知道怎么定義字母

    (4)   編程繁瑣,多余

c.解決方法

  通過自己翻閱書籍,研究,和同學研究討論,實在不會的問老師和助教,問題解決后自己要多加練習

  (1)計算每一步都需要考慮是否按照題意要求

  (2)在所得結果上加上0.5就會在輸出的整數,就可以四舍五入輸出的結果

  (3)int 是整形數據,int a = 3;這里int 是類型, a是整形變量,3是賦值;char s = 'A'; char是字符類型,s是字符型變量,A是賦值給變量s;

  2.點評

(1)https://www.cnblogs.com/zxj0402/p/9977677.html

(2)https://www.cnblogs.com/ysq1n/p/10022816.html

(3)https://www.cnblogs.com/z-x-c2429657075-/p/9977471.html

  3.表格

周數 此周代碼行數/行 碼代碼所用時長/h 所寫博客字數/字 寫博客所用時長/h 所涉及的知識點
第9周 2800 12 0 有關分支結構的知識
第10周 3000 15 0 有關四則運算的知識
第11周 2800 13 0 有關while,for,do while循環的知識 
第12周 2800 14  1000  5 加深對循環的知識 

  4.折線圖

 

=---恢復內容結束---


免責聲明!

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



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