一、表格
| 問題 | 答案 |
|---|---|
| 這個作業屬於那個課程 | C語言程序設計II |
| 這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9976 |
| 我在這個課程的目標是 | 學習好C語言,熟練掌握編譯代碼的相關技巧,掌握C語言的精髓 |
| 這個作業在那個具體方面幫助我實現目標 | 學會使用while和do-while結構解決問題 |
| 參考文獻 | 百度,C語言程序設計,《C Primer Plus》 |
二、本周作業
1.PTA實驗作業

1.1 題目名1 求整數的位數及各位數字之和
題目內容:
對於給定的正整數N,求它的位數及其各位數字之和。
輸入格式:
輸入在一行中給出一個不超過10^9的正整數N
輸出格式:
在一行中輸出N的位數及其各位數字之和,中間用一個空格隔開。
輸入樣例:
321
輸出樣例:
3 6
1.1.1數據處理
數據表達:定義變量count,number,sum;並且把它們都定義為整型變量,開始的時候 count=0;sum=0。
數據處理:運用了while語句,當number!=0的時候進行sum,number,count的運算。
偽代碼:#include<stdio.h>
int main (void)
{
定義整型變量 count,number,sum;
count=0;(進行賦值)
sum=0;
輸入number的值;
while (number不等於零)(while語句進行循環)
{
sum=sum+number%10;(用公式進行計算)
number=number/10;
count=count+1;
}
printf(輸出count,sum的值);
程序結束;
}
1.1.2實驗代碼截圖

1.1.3 造測試數據
| 輸入數據 | 輸出數據 | 說明 |
|---|---|---|
| 321 | 3 6 | 驗證題目所給的數據 |
| 10001 | 5 2 | 輸入較大的數據進行驗證 |
| 11 | 2 2 | 驗證較小數據 |
1.1.4 PTA提交列表及說明

提交列表說明:
1.部分正確:將 while (number>0)改為 while (number!=0),將循環體語句修改為sum=sum+number%10;number=number/10;count=count+1;
2.答案正確:。。。
說明:在Devc++上實驗了很久才發現了原來是自己的循環體出了錯誤,然后根據提示進行了修改。
1.2 題目2 jmu-c-二進制轉10進制
題目內容:
輸入一組二進制字符,輸出其對應的十進制數。當輸入回車鍵時,輸入結束。若輸入非二進制字符,輸出error input!
輸入樣例1:
11111111
輸出樣例1:
255
輸入樣例2:
34
輸出樣例2:
error input!
1.2.1 數據處理
數據表達:定義變量sum,並且定義為整型;定義字符型變量char op;開始的時候sum=0。
數據處理:開始的時候先運用while語句進行循環接着再運用if-else語句進行結果的計算。
偽代碼:#include<stdio.h>
int main (void)
{
定義整型變量sum=0;
定義字符型變量char op;
輸入op;
while(判斷輸入是否是 回車,不是就進入循環)
{
if(op=='\n')
break;(如果輸入是 回車,就跳出)
if(op!='0'&&op!='1')(判斷輸入的是否是二進制數)
{
printf("error input!");
return 0;
}
else(輸入的數是二進制數)
{
sum=sum*2+op-'0'; (用公式進行計算)
}
輸入字符;
}
輸出十進制sum的值;
return 0;
}
1.2.2 實驗代碼截圖

1.2.3 造測試數據
| 輸入數據 | 輸出數據 | 說明 |
|---|---|---|
| 11111111 | 255 | 驗證題目所給數據1 |
| 34 | error input! | 驗證題目所給數據2 |
| 11 | 3 | 隨機驗證一組數據 |
1.2.4 PTA提交列表及說明

提交列表說明:
1.部分正確:在 printf("error input!");后面增添上語句 return 0;把printf("%d",sum);放到最后一個return 0上面。
2.答案正確:。。。
2.代碼互評
同學代碼一:

自己代碼一:

代碼比較:
1.我與同學定義的變量有點不一樣,我比她多定義了一個變量h是為了算高度。
2.我們倆個的算的思路有一點不一樣,同學的是用n去減去爬的高度,而我用的是爬的高度與輸入n進行比較,所以算的過程有點不一樣。
同學代碼二:

自己代碼二:

代碼比較:
1.剛看到同學的代碼的時候感覺到很震驚,跟他相比感覺自己跟別人的差距有點大啊,他運用了好多知識點。
2.他運用了字符型,switch語句,還運用了while的語句,可以看出來同學很好的把最近所學的東西都聯系起來了,而我運用了字符型,while語句以及if-else語句,相對同學來說沒有那么高級。
3.學習總結
3.1 學習進度條
| 周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
|---|---|---|---|---|
| 第一周(9.19-3.27) | 四天 | 40 | Hello world編程和Markdown語法 | 對待大部分內容都不理解 |
| 第二周(9.25-10.4) | 四天 | 35 | 華氏度與攝氏度的轉換 | 不理解數據類型 |
| 第三周(10.8-10.11) | 三天 | 90 | if-else語句、格式化輸入語句 | 分不清整型變量和浮點型變量 |
| 第四周(10.15-10.17) | 三天 | 100 | 有關for循環體的運用 | 有時候不清楚循環體是什么 |
| 第五周(10.22-10.25) | 三天 | 130 | 使用自定義函數來編程和生成乘方表和階乘表 | 不知道如何調試函數以及在哪里設置斷點 |
| 第六周(10.30-11.2) | 四天 | 180 | 分支結構、字符型數據類型 | 對待字符型題目還是不能夠准確理解 |
| 第七周(11.06-11.08) | 三天 | 190 | 學會多分支結構switch語句的使用 | 有時不能准確理解case后的有些語句 |
| 第八周(11.13-11.15) | 三天 | 200 | 學會使用while和do-while結構解決問題 | 不能准確判斷while的循環條件 |
3.2 累積代碼行和博客字數

3.3 學習內容總結和感悟
3.3.1 學習內容總結

3.3.2 學習體會
1.這一周我們學習了while語句以及do-while語句的運用,以及在使用while語句的注意事項,和for語句的比較。
2.while語句的表達式為:while(表達式) 循環體語句; do-while語句的表達式為"do{" "循環體語句" "}while(表達式);"
3.在寫作業時有時不能准確判斷while語句中表達式的判斷條件,有時會判斷錯誤。
