C語言I博客作業09


本周作業頭

這個作業屬於哪個課程 C語言程序設計II
這個作業要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11530
我在這個課程的目標是 了解函數的分類和類型,熟悉變量的作用域、生存周期和存儲類型
這個作業在那個具體方面幫助我實現目標 參考同學的代碼,翻閱書籍
參考文獻 c語言程序設計(第三版)
學號 20208928

1.PTA實驗作業(20分/題)

**1.1 題目1統計某類完全平方數 **
題目描述:本題要求實現一個函數,判斷任一給定整數N是否滿足條件:它是完全平方數,又至少有兩位數字相同,如144、676等。

函數接口定義:

int IsTheNumber ( const int N );

裁判測試程序樣例:

#include <stdio.h>
#include <math.h>

int IsTheNumber ( const int N );

int main()
{
    int n1, n2, i, cnt;

    scanf("%d %d", &n1, &n2);
    cnt = 0;
    for ( i=n1; i<=n2; i++ ) {
        if ( IsTheNumber(i) )
            cnt++;
    }
    printf("cnt = %d\n", cnt);

    return 0;
}

/* 你的代碼將被嵌在這里 */

1.1.1數據處理

數據表達:定義整型變量.n1和n2,b為存儲求取余余數的變量,定義p[10]數組,定義m為對n取開二次方后的整數部分。
數據處理:用了int=m=sqrt(n)函數對n進行取整開根,再判斷m*m是否等於n;之后用while(n)循環,和for循環

1.1.2實驗代碼截圖

1.1.3 造測試數據

輸入數據 輸出數據 說明
100 506 cnt = 7 正確
110 700 cnt = 7 正確

1.1.4 PTA提交列表及說明

部分正確:將if(m*m==n)中m*m打成了m*n

1.2 題目2統計各位數字之和是5的數
題目內容:本題要求實現兩個函數:一個函數判斷給定正整數的各位數字之和是否等於5;另一個函數統計給定區間內有多少個滿足上述要求的整數,並計算這些整數的和。

函數接口定義:

int is( int number );
void count_sum( int a, int b );

函數is判斷number的各位數字之和是否等於5,是則返回1,否則返回0。

函數count_sum利用函數is統計給定區間[a, b]內有多少個滿足上述要求(即令is返回1)的整數,並計算這些整數的和。最后按照格式

count = 滿足條件的整數個數, sum = 這些整數的和

裁判測試程序樣例:

#include <stdio.h>

int is( int number );
void count_sum( int a, int b );

int main()
{
    int a, b;

    scanf("%d %d", &a, &b);
    if (is(a)) printf("%d is counted.\n", a);
    if (is(b)) printf("%d is counted.\n", b);
    count_sum(a, b);

    return 0;
}

/* 你的代碼將被嵌在這里 */

**1.2.1數據處理**
數據表達:全定義為整型變量,函數int is( int number )判斷給定正整數的各位數字之和是否等於5;函數void count_sum( int a, int b )統計給定區間內有多少個滿足上述要求的整數
數據處理:第一個函數用while循環計算各數之和
 while(number!=0){  
 t=number%10;
 sum=sum+t;
 number=number/10}
第二個函數計算滿足整數的和
int s=0,c=0,i;
 for(i=a;i<=b;i++){
 if(is(i)){
 c++;
 s=s+i;

1.2.2實驗代碼截圖

1.2.3 造測試數據

輸入數據 輸出數據 說明
106 660 count = 14, sum = 3616 代入正確
221 230 221 is counted.230 is counted.count = 2, sum = 451 代入正確

1.2.4 PTA提交列表及說明

編譯錯誤:void count_sum( int a, int b )后面多加了“;”。
格式錯誤:printf("count = %d, sum = %d",c,s)忘記打空格

2.代碼互評
同學代碼1

同學代碼2

我的代碼

對比:1.第一位學長的方法非常好,簡單又好,值得我好好學習。
2.第二位同學的也比我好,只輸入了一次字符串,我看完她的代碼,覺得我把問題又復雜化了。

3.學習總結(15分)
3.1 學習進度條(5分)

周/日期 這周所花的時間 學到的知識點簡介 目前比較迷惑的問題
第十六周12.15-12.20 51 各種類型函數的定義、調用和申明 還不太了解變量的作用域、生存周期和存儲類型
第十五周12.8-12.14 45 學習break和continue的使用 不太清楚兩者區別
第十四周12.1-12.7 40 學習while循環結構 對while和for循環的區別使用還不夠熟練
第十三周11.23-11.30 26 學習switch-case結構 不太理解if-else和switch-case的區別
第十二周 11.11-11.22 25 調用函數,了解char字符型變量,熟悉if-else分支結構 if-else的多種分支嵌套不太懂
第十一周 11.10-11.14 20 定義和調用函數 不太懂清楚定義函數和調用函數的順序和什么時候該定義函數
第十周 11.2-11.8 19 for循環結構 不是太熟悉for結構中什么語句應該包含循環
第九周 10.26-11.1 18 if-else語句 不太理解if-else和else-if多分支結構的區別
第八周 10.19-10.25 16 對C語言的基本認知 沒有

3.2 累積代碼行和博客字數(5分)

時間 博客字數 代碼行數
第八周 1007 15
第九周 537 50
第十周 1250 102
第十一周 1450 160
第十二周 1521 155
第十三周 1425 203
第十四周 1611 256
第十五周 1704 305
第十六周 1650 384

3.3 學習內容總結和感悟(5分
3.3.1 學習內容總結

3.3.2 學習體會
每個人的學習進度條都在進步,自己同時也在努力,我認為現在參考別人的代碼可以對自己有進一步的提升和認識,了解他們的思維思路,對自己也有一定幫助,相互借鑒,相互進步。
還有就是還是要多練習代碼,提高知識熟練度以及鞏固。還有我覺得PTA的作業真的難,我覺得可以降低難度,平均水平一下。


免責聲明!

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



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