問題 | 答案 |
---|---|
這個作業屬於在哪個課程 | C語言程序設計II |
這個作業要求在哪里 | <a href="https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10027" |
target="_blank">C語言I作業09 | |
我在這個課程目標是 | 學好C語言,為后面學習打好基礎 |
這個作業具體在哪里方面幫助我 | 熟悉break、continue的使用 , 熟悉使用循環的嵌套解決問題 |
參考文獻 | <a href="https://baidu.com"target="_blank">百度 , <a href="https://www.cnblogs.com/pengchen511/p/10564067.html"target="_blank">C語言作業評價標准 |
一:PTA實驗作業
1.1題目名跟奧巴馬一起畫方塊
美國總統奧巴馬不僅呼吁所有人都學習編程,甚至以身作則編寫代碼,成為美國歷史上首位編寫計算機代碼的總統。2014年底,為慶祝“計算機科學教育周”正式啟動,奧巴馬編寫了很簡單的計算機代碼:在屏幕上畫一個正方形。現在你也跟他一起畫吧!
輸入格式:
輸入在一行中給出正方形邊長N(3≤N≤21)和組成正方形邊的某種字符C,間隔一個空格。
輸出格式:
輸出由給定字符C畫出的正方形。但是注意到行間距比列間距大,所以為了讓結果看上去更像正方形,我們輸出的行數實際上是列數的50%(四舍五入取整)
1.1.1數據處理
1.數據表達:用了整形變量i,j, n;字符型變量 c
2.數據處理:
先定義變量i,j, n,c;
輸入整數你,字符c;
for i=1 to i<=(n+1)/2 do//輸出行數實際上是列數的50%
i++
for j=1 to j<=2 do//輸出的列數
j++
end
1.1.2實驗代碼貼圖
1.1.3造數據測試
輸入數據 | 輸出數據 | 說明 |
---|---|---|
10 a | aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa | PTA數據 |
4 a | aaaa aaaa | 隨機打的 |
5 a | aaaaa aaaaa aaaaa | 隨機打的 |
1.1.4PTA提交列表說明
1.答案錯誤,這題是用字符c輸出,但是我輸入的數據沒有用%c,導致錯誤
2.編譯錯誤,沒有使用英文鍵盤,分號使用錯誤
1.2題目名找完數
所謂完數就是該數恰好等於除自身外的因子之和。例如:6=1+2+3,其中1、2、3為6的因子。本題要求編寫程序,找出任意兩正整數m和n之間的所有完數。
輸入格式:
輸入在一行中給出2個正整數m和n(1<m≤n≤10000),中間以空格分隔。
輸出格式:
逐行輸出給定范圍內每個完數的因子累加形式的分解式,每個完數占一行,格式為“完數 = 因子1 + 因子2 + ... + 因子k”,其中完數和因子均按遞增順序給出。若區間內沒有完數,則輸出“None”。
1.2.1數據處理
1.數據表達:用了整形變量m,n,i,j,s,k,count
2.數據處理
定義變量m,n,i,j,s,k,count,m,n是輸入的一個區間的正整數,i,j,k是在這個區間的數,count是累加完數
for(i=m;i<=n;i++)//就行循環
for(j=1;j<i;j++)
if(i%j==0)//判斷是否是該數的因子
s+=j;累加因字的和
if(s==i)判斷是否為完數
printf("%d = 1",i)先打印1,每個完數都有1
for(k=2;k<j;k++)//重復操作
找到所有完數
if(count==0)沒有就輸出None
1.2.2實驗代碼貼圖
1.2.3造數據測試
輸入數據 | 輸出數據 | 說明 |
---|---|---|
2 30 | 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 | PTA數據 |
2 10 | 6 = 1 + 2 + 3 | 隨機打的 |
5 30 | 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 | 隨機打的 |
1.2.4PTA提交列表說明
1.部門正確,我一開始以為是我定義變量和題目的字母沖突,然后改了字母,還是一樣
2.部分正確,問了同學,是我的count沒有賦值,導致count計數錯誤
二:代碼互評
2.1.1同學代碼
2.1.2自己代碼
2.1.3相互對比
1.定義變量不同,因為后面運用的表達式不同,語句也不一樣
2.他用的是if-else語句分情況討論,比較清楚,我是直接用for語句解決問題,代碼比較簡單
2.2.1同學代碼
2.2.2自己代碼
2.2.3相互對比
1.定義變量不同,因為后面運用的表達式不同,語句也不一樣
2.他用了for語句中我們表達式不一樣,他是把情況列出來
3.他把那個和定義了一個字母,我是用if判斷和是不是等於那個數,所以我們后面 printf不一樣
三.學習總結
3.1學習進度條
周 | 這周花的時間 | 代碼行 | 學到的知識簡介 | 目前比較疑惑的問題 |
---|---|---|---|---|
第一周 | 3天 | 47 | 簡單的編程 | 無 |
第二周 | 4天 | 55 | 常量,變量,數據類型和一些運算符以及賦值運算 | 無 |
第三周 | 4天 | 95 | 關系運算、if-else語句、格式化輸入語句scanf(),以及常用的數學庫函數 | 格式控制 |
第四周 | 4天 | 92 | 使用for循環語句實現指定次數的循環程序設計 | 循環的順序 |
第五周 | 4天 | 85 | 對函數的定義和調用有初步的認識,能模仿編程 | 對函數題還不熟練 |
第六周 | 4天 | 152 | 學會多分支結構、字符型數據類型和邏輯運算符 | 字符型函數不太了解 |
第七周 | 4天 | 182 | 熟悉多分支結構switch語句的使用 | 怎么用switch語句簡單些 |
第八周 | 3天 | 118 | 熟悉使用while和do-while結構解決問題 | 字符型再加上while語句不太會用 |
第九周 | 4天 | 196 | 熟悉break、continue的使用 ;熟悉使用循環的嵌套解決問題 | 嵌套問題還不是很會 |
3.2累積代碼行和博客字數
3.3學習內容總結
3.3.1學習內容總結
3.3.2學習體會
1.感覺后面的代碼越來越復雜,需要花的時間更多。
2.這周學習了循環嵌套,使循環的代碼變得簡單許多,這些代碼循環還是蠻有意思的
3.學習了一個新的語句,continue的使用,continue語句雖然方便,但是它只能用於循環,而break語句使用范圍就比較廣
4.學習的東西越來越多,感覺很多都忘了,需要勤加復習,繼續加油