一.表格
問題 | 答案 |
---|---|
這個作業屬於那個課程 | C語言程序設計II |
這個作業要求在哪里 | C語言I博客作業10 |
我在這個課程的目標是 | 熟練的運用與掌握計算機系統和C語言知識 |
這個作業在那個具體方面幫助我實現目標 | 加強嵌套循環和定義字符型的使用 |
參考文獻 | 《C語言程序設計》、《C Primer Plus》 |
二.本周作業
1. PTA實驗作業(20分/題)
從PTA題目集中選出2個你最滿意的題目完成以下內容,選擇題目難度越大,分值越高,每題20分(每項5分)
1.1 題目名1
1.1.1數據處理
數據表達:先根據題目定義整型變量n表示-----一個正整數n,以及count = 0。
數據處理:(偽代碼如下)
定義變量n、以及 count = 0
輸入正整數n
進入for嵌套循環
for (int i = n; i > 0; i--) {
for (int j = 0; j < i; j++) {
輸出結果
printf("%c ", 'A' + count);
輸出結果為字符型數據所以應用 "%c "
程序結束
**1.1.2實驗代碼截圖 **
1.1.3 造測試數據
1.1.4 PTA提交列表及說明
答案正確:......
1.2 題目2
1.2.1數據處理
數據表達:先根據題目要求定義整型變量 梅森數num,正整數n, i,j,f=0 。
數據處理:(偽代碼如下)
定義數學函數
定義變量 梅森數num,正整數n, i,j,f=0
輸入正整數n
進入for嵌套循環
for(i=2;i<=n;i++){
num=pow(2,i)-1;
表示
for(j=2;j<=sqrt(num);j++)
輸出結果
printf("%d*%d=%-4d",j,i,i*j);
if(num%j==0) break;
如果取余=0的話則跳出循環
if(j>sqrt(num)){
printf("%d\n",num);
如果滿足if中的條件則輸出
f++;
if(f==0) printf("None");
換行輸出
程序結束
1.2.2 實驗代碼截圖
1.2.3 造測試數據
1.2.4 PTA提交列表及說明
編譯錯誤:用法錯誤,一開始寫的時候並沒有想用數學函數來做后來做的時候再改的,所以我沒有在一開始定義函數 #include<math.h> 。
答案正確:........
1.3題目3
1.3.1數據處理
數據表達:先定義一個數學函數 Number ,定義整型變量 a,b。
數據處理:(偽代碼如下)
自定義函數
int Number(int a)
定義變量
while(a!=0){
開始 while循環判斷a是否等於0
if-else語句判斷
if(b%10!=a%10){
b除10取余不等於a除10取余
return 0;
else{
若b除10取余等於a除10取余
b=b/10;
a=a/10;
return 1;
int main()
for(int i=1; i<1000; i++){
進入for循環判斷同構數
if(Number(i)){
若滿足同構數的條件則輸出
printf("%6d", i);
因為在一行中輸出所有滿足條件的同構數,每個數輸出占6列所以是 "%6d"
程序結束
1.3.2 實驗代碼截圖
1.3.3 造測試數據
1.3.4 PTA提交列表及說明
格式錯誤:我打的一開始不小心多打了一個空格導致 “!=” !和 = 分開了,所以格式錯誤。
格式錯誤: 將上個錯誤改正后再次提交但是還是格式錯誤,放到 Dev-C++ 上運行發現輸出結果與輸出樣例不同,再次讀題發現在一行中輸出所有滿足條件的同構數,每個數輸出占6列。所以將輸出代碼改為 "%6d" 。
答案正確:將這個錯誤改正后提交顯示答案正確。
2.代碼互評(5分)
同學代碼截圖1
自己代碼截圖1
比較:
1.同學代碼是使用了表達式 i==i*i%10||i==i*i%100||i==i*i%1000 來表達判斷是否為同構數的條件,但是我是使用的自定義函數來編寫的。
2.兩份代碼在本質和使用意義上是一樣的,但是我感覺思考方向上是有些不同的。
3.同學代碼在代碼行數上是更簡潔的,相對於我的代碼是更簡單。
同學代碼截圖2
自己代碼截圖2
比較:
1.同學代碼在開始先定義字符型變量,但是我的是在輸出的時候進行字符型輸出。
2.這樣相較而言,我感覺我的代碼寫起來就比較方便簡潔。
3.學習總結(15分)
3.1 學習進度條
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第一周/9-19 | 這周花了大約三天 | 30 | Hello world編程 | 無 |
第二周/9-25 | 這周花了大約三天 | 50 | 華氏度與攝氏度 | 無 |
第三周/10-9 | 這周花了大約三天 | 100 | 目前是常量,變量的應用以及分段函數中的 if-else 的使用 | 在PTA的使用中明明答案沒有問題但就是顯示各種問題,在寫博客園時對表格以及格式的編輯總是l力不從心! |
第四周/10-15 | 這周花了大約兩天 | 150 | for語句循環體的使用 | 各種變量,語句的使用會混亂 |
第五周/10-24 | 這周花了大約三天 | 140 | 階乘的編程,自定義函數 | 參數的設定 |
第六周/10-31 | 這周花了大約三天 | 200 | 多分支結構和else-if語句 | 字符型數據 |
第七周/11-6 | 這周花了大約三天 | 210 | switch語句 | switch語句如何更好的與for語句、if-else語句連用 |
第八周/11-13 | 這周花了大約兩天 | 150 | while語句和do-while語句 | 字符型具體表達 |
第九周/11-21 | 這周花了大約三天 | 190 | break語句和continue語句以及嵌套循環 | continue語句的使用 |
第十周/11-26 | 這周花了大約三天 | 160 | 嵌套循環和字符型使用 | 格式錯誤的真諦 |
3.2 累積代碼行和博客字數
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
3.3.2 學習體會
1.在本周中學習中復習了上周的知識,重點又講解了嵌套循環的實際應用與操作以及在PTA上的作業講解。
2.我在課堂上主要學習到了如何在代碼中加入自己的理解和思考。另外,我在聽助教講解題目時,也知道了寫代碼時可以把代碼分開寫分為各個版塊來寫。
3.還有大概兩周就要考試了,所以在寫代碼的方面上我還應該再加把勁!