C語言I博客做業11

問題 回答
這個做業屬於那個課程 C語言程序設計II
這個做業要求在哪裏 做業要求
我在這個課程的目標是 本身設計一個小遊戲
這個做業在那個具體方面幫助我實現目標 在PTA練習中屢次使用自定義函數和庫函數
參考文獻 C語言程序設計II,百度百科

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

1.1統計某類徹底平方數

本題要求實現一個函數,判斷任一給定整數N是否知足條件:它是徹底平方數,又至少有兩位數字相同,如14四、676等。

函數接口定義:算法

int IsTheNumber ( const int N );編程

其中N是用戶傳入的參數。若是N知足條件,則該函數必須返回1,不然返回0。數組

裁判測試程序樣例:

#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;
}

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

輸入樣例:markdown

1.1.1數據處理

數據表達:定義了n接受N的平方根乘n的平方根,N是輸入的整數,定義一個10位的數組num用了收集n的值;n1,n2爲輸入的取值範圍,i用於控制循環,cnt用於記數
數據處理:函數

int IsTheNumber ( const int N )
    定義整形變量i循環終止條件,n是N的平方根乘n的平方根
    定義數組num[10]並將數組初始化爲0
    n=(int)sqrt(N)*(int)sqrt(N) /*利用函數sqrt()進行判斷是否爲徹底平方數*/
    if(n==N)                /*在徹底平方數的基礎上進行判斷第二步*/
        while(n!=0)     /*檢驗數字是否相同*/
            for(i=0;i<10;i++)
                if(n%10==i)
                    num[i]累加
                    if(num[i]==2)   /*判斷是否有相同的數字*/
                        返回值爲1   
                    end if
                end if
            end for
            n←n/10
        end whlie
        返回值爲0   
    end if
    else 
        返回值爲0

1.1.2實驗代碼截圖

1.1.3 造測試數據

輸入數據 輸出數據 說明
105 500 cnt = 6 題中數據
0 100 cnt = 1 題中數據左側
500 1000 cnt = 2 題中數據右側

1.1.4 PTA提交列表及說明

提交列表說明:
編譯錯誤:開始忘了把數組初始化。
編譯錯誤:錯把num[i]==2打成num[i]=2學習

1.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 = 這些整數的和3d

進行輸出。題目保證0<ab≤10000。

裁判測試程序樣例:

#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 數據處理

數據表達:定義了整形變量a,b爲輸入的範圍,自定義函數is並定義了整形變量i,sum,其中sum爲number的每一位相加的和,i爲返回值;
自定義函數count_sum並定義了整形變量count,sum,i,其中count爲記錄知足要求的個數,sum爲每個知足條件的數的和,i用來控制循環。
數據處理:

int is(int number)
    定義整型變量c,d
    定義整數變量sum並賦值爲0
    while(number!=0)/*number是否等於0*/
        c←number%10
        sum←sum+c
        number←number/10
    end while
    if(sum==5)  /*判斷各位數之和是否等於0*/
        返回值爲1
    else
        返回值爲0
    end if-else
end
void count_sum( int a, int b )
    定義整型變量i爲控制循環
    定義整型count用於記錄知足條件數的個數,sum1爲知足條件的每個數累加的和
    for(i=a; i<=b; i++)  /*在區間a-b中循環尋找各位數字之和是5的數*/
        if(is(i))
            count累加
            sum1←sum1+i
        end if
    end for
    輸出count = , sum = 
end

1.2.2 實驗代碼截圖

1.2.3 造測試數據

輸入數據 輸出數據 說明
104 999 104 is counted.
count = 15, sum = 3720
題中數據
0 103 count = 6, sum = 165 題中數據左側
1000 9999 count = 35, sum = 73885 題中數據右側

1.2.4 PTA提交列表及說明

提交列表說明:
編譯錯誤:錯把number=number/10;打成number=number%10;

2.代碼互評(5分)

同窗代碼截圖

本身代碼截圖

同窗代碼是用n代替N,個人n是兩個根號下N相乘,他用m等於根號下n,m乘m來代替個人n,我這樣少一個變量,咱們算法差很少,就if語句中判斷條件有點不同。

同窗代碼截圖

本身代碼截圖

1.他的代碼較亂,並且變量多一點,個人比較清晰。
2.在判斷N是否知足條件上,他的判斷語句是(b[a[i]]==1),而個人判斷語句是知足s[i]==2,返回1,知足n/=10,返回0。

3.學習總結(15分)

3.1 學習進度條(5分)

周/日期 這周所花的時間 代碼行 學到的知識點簡介 目前比較迷惑的問題
9.16~9.22 6h 20 初步瞭解編程如何進行 編程開始的單詞有什麼做用,編譯是如何進行的
9.23~10.6 30h 30 學會運用markdown語法和了解博客園做業格式 如何在博客隨筆字體加顏色
10.7~10.11 48h 235 學會了if語句和編程的數學函數怎麼寫 while語句如何使用和電腦上表格和why手機上順序不同
10.14~10.20 36h 100 掌握使用for循環語句 對多種循環結構不夠了瞭解以及分支結構和循環結構同時使用的編程前後。
10.20~10.27 32h 135 如何對函數的定義和調用,思惟導圖 函數的調用和定義有沒有侷限性。
10.28~11.3 36h 512 熟悉多分支結構、字符型數據類型和邏輯運算符 四則運算和字符型變量
11.4~11.10 12h 232 熟悉多分支結構switch語句的使用 在博客園中如何添加小掛飾
11.11~11.17 18h 263 熟悉使用while和do-while結構 字符的實際使用
11.18~11.24 20h 186 熟悉break、continue的使用,熟悉使用循環的嵌套解決問題 嵌套循環的邏輯
11.25~12.1 22h 270 選擇合適的算法、合理的循環結構,熟練的編寫程序 數組的運用
12.2~12.8 30h 215 掌握各類類型函數的定義、調用和申明,熟悉變量的做用域、生存週期和存儲類型 不太明白變量的生存週期

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

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

3.3.1 學習內容總結

3.3.2 學習體會

本學期最後一次做業感受有點難度啊,尤爲是編程題,我第一題從3分到4分到5分,太難受了,一個虛數輸出問題,我就搞了半天,i無值,因此不能直接輸出,實數部分和虛數部分系數分開求才能實現,但仍是隻有5分,還有5個測試點錯誤,我打算在Dev上一個一個測試,看到底那錯了,回顧這一學期,其中有時候偏離了本身的目標,距離目標仍是太遠了,在最後這一段時間我但願本身堅持學習,儘可能考個好分數,個人博客各向指標也該提高點了畢竟分數不能總停在那裏,沒進步就是退步,加油,奧利給。

相關文章
相關標籤/搜索