一、PTA實驗作業
題目1:7-10 矩陣運算
1. 本題PTA提交列表
2. 設計思路(包括流程圖)
定義N,i=0,j=0,sum=0,二維數組a[i][j]。通過循環限制i,j<n-1除去最后一行和最后一列的元素,通過判斷i+j是否等於n-1除去副對角線的元素 ,所有剩余的元素相加即為題目所求。
流程圖如下
3.代碼截圖
4.本題調試過程碰到問題及PTA提交列表情況說明。
前兩次提交部分正確是因為漏看了題目要求除去副對角線上的元素,通過思考,第一次填寫的限制條件是i+j!=n,仍然錯誤。經過思考,得出限制條件應該是i+j!=n-1。
題目2:7-20 輸出GPLT
1. 本題PTA提交列表
2. 設計思路(包括流程圖)
通過利用while循環+switch函數統計G,P,L,T所出現的次數。再利用一個while循環,按照GPLT的順序輸出,每輸出一個字母就減去對應的字母出現的次數一次,最后通過判斷GPLT的出現次數都為0的時候,退出循環,得出答案。
流程圖如下
3.代碼截圖
4.本題調試過程碰到問題及PTA提交列表情況說明。
第一次部分正確是因為出現了運行時錯誤,通過擴大字符串ch長度,從ch[10000]換成ch[10010]解決問題。
題目3:7-30 A-B
1. 本題PTA提交列表
2. 設計思路(包括流程圖)
題目要求的A-B換種說法就是輸出A所有字符中除去B中所含的字符,所以我定義兩個字符串,通過循環將ch1中的字符依次與B中的字符進行比較,若全不相同就輸出,若有相同就進行下一字符的對比。以此類推。
流程圖如下
3.代碼截圖
4.本題調試過程碰到問題及PTA提交列表情況說明。
同第二題一樣出現運行時錯誤,擴大ch1,ch2解決問題。
二、同學代碼結對互評
1.同學互評照片
我的代碼如下
謝曄暉同學的代碼
不同點1:輸入字符串方法不同
我的方法是用gets函數直接將字符串輸入,這樣代碼的簡練度較高。而曄暉是利用循環,一個字符一個字符的輸入。
不同點2:對GPLT個數的統計
我的方法使用switch函數統計,曄暉使用循環+if判斷統計。代碼簡練程度沒有太大區別,但我認為switch函數來統計個數更清晰點。
相同點1:輸出方法類似。
我更加喜歡自己的代碼風格。
三、截圖本周題目集的PTA最后排名
四、本周學習總結
1.你學會了什么?
(1)學會了一維數組和二維數組的應用,並且能與子函數和指針結合運用。
(2)gets,puts,strcmp,strcpy,strlen,strcat字符串操作函數的應用,並且能寫出函數原型。
gets(ch1)//輸入字符串ch1
puts(ch2)//輸出字符串ch1
strcmp(ch1,ch2)//字符串比較(不是比較字符串長度,而是逐個比較字符串ch1和ch2中的對應字符,知道對應字符不等或者比較到字符串尾,若相等返回值為0,若不相等返回值為不相等字符的差值)
strcpy(ch1,ch2)//把字符串ch2復制到ch1中
strcat(ch1,ch2)//把字符串ch2連接到ch1
strlen(ch1)//求字符串ch1的長度
(3)字符串的結束符'\0'(在用gets函數中,回車后自動在字符串尾生成\0')
2.本周的內容,你還不會什么?
長時間思考后仍然沒有思路。