C語言I博客作業11


問題 回答
這個作業屬於那個課程 C語言程序設計II
這個作業要求在哪里 C語言I博客作業11
我在這個課程的目標是 學習好C語言解決應用到實際生活中
這個作業在那個具體方面幫助我實現目標 了解了for,while,do-while循環之間的區別
參考文獻 百度百科、CSDN博客、C語言程序設計

1.PTA實驗作業

1.1 統計某類完全平方數

本題要求實現一個函數,判斷任一給定整數N是否滿足條件:它是完全平方數,又至少有兩位數字相同,如144、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;
}


/* 你的代碼將被嵌在這里 */
輸入樣例:
105 500
輸出樣例:
cnt = 6

1.1.1

數據處理:定義n,x,i,為整型變量,y為雙精度變量;
數據表達:賦值N的平方根給n和y,運用while語句,for循環語句;

1.1.2實驗代碼截圖

1.1.3 造測試數據

輸入數據 輸出數據 說明
10 30 cnt=0 10~20內沒有類完全平方數
105 500 cnt=6 105~500內有6個類完全平方數

1.1.4 PTA提交列表及說明

這題我是先在Dvev-C++1上先調試后復制上去的,但我記得當時出現的問題
編譯錯誤:要定義的數定義定義錯誤
編譯錯誤:我用了中文符號";"

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 = 這些整數的和
進行輸出。題目保證0<a≤b≤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;
}

/* 你的代碼將被嵌在這里 */
輸入樣例:
104 999
輸出樣例:
104 is counted.
count = 15, sum = 3720

1.2.1 數據處理

數據表達:本題定義s,y為整型變量;主函數是“int main()”,被調函數是“int is( int number )”;
數據處理:本題運用了while語句,for循環去處理變量;使用了scanf語句輸入;

1.2.2實驗代碼截圖

1.2.3 造測試數據

輸入數據 輸出數據 說明
104 999 104 is counted. count = 15, sum = 3720 與PTA實例一致
11 13 count=0 ,sum=0 區間內沒有
15 16 count=0 ,sum=0 區間內沒有

1.2.4 PTA提交列表及說明

編譯錯誤:定義變量s錯誤
編譯錯誤:把i賦值用成了s
編譯錯誤: 輸入(is(i))少了一個“)”

2.代碼互評

2.1同學代碼截圖:

自己代碼截圖:

不同點:我和他大的代碼思路大致相同,但在數據處理方面有些不一樣,如我是把N的平方根賦值給n和y;而他只是賦值n的平方根賦值給m;

2.2同學代碼截圖

自己代碼截圖

不同點:本題我采用的是while語句而他用的是for循環,所以他定義的變量比我多一些,我的更加簡約一些。

3.學習總結

周/日期 這周所花的時間 代碼行 學到的知識點簡介 目前比較疑惑的問題
第一周/9-18 3天 42 簡單的C語言知識 不會寫代碼
第二周/10-27 3天 提問的智慧 寫代碼的思路
第三周/9-12 3天 87 關系運算,格式化輸入語句scanf() 怎么找錯誤
第四周/10-15 4天 106 使用for循環語句事先指定次數的循環程序設計 循環程序的邏輯關系
第五周/10-19 3天 126 自定義函數 構建函數
第六周/11-1 3天 205 在編程中運用函數,多分支結構,邏輯運算符,字符型數據類型 怎樣用字符型數據
第七周/11-6 1天 189 運用switch語句 怎么將switch靈活運用,怎么去寫偽代碼
第八周/11-15 一天 學習了do-while語句 運用do-while語句
第九周/11-20 一天 190 嵌套循環 嵌套循環去解決問題
第十周/11-29 一天 178 嵌套循環的綜合 循環結構的設置思路
第十一周/12-6 一天 183

3.2 累積代碼行和博客字數

3.3 學習內容總結

3.4 學習體會

這一周主要是復習,在復習的過程中感覺又學習到了新知識,switch語句能使的代碼更加的簡潔還有do-while語句使用能使題目更加的簡單。發現在閱讀別人的代碼時能讓自己收獲許多新的東西,同明白自己與別人之間的差距。


免責聲明!

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



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