標籤:提示 判斷語句 img 迴圈輸出 矩陣轉置 1.2 div 迴圈條件 getch
一、PTA實驗作業題目1:7-4 列印菱形圖案1. 本題PTA提交列表
2. 設計思路
定義變數n表示菱形高度,i,j,k分別控制迴圈for i=1 to n/2+1打出上三角的*號 for j=1 to (n-1)-2*(i-1) 輸出空格 for k=1 to 1+2*(i-1) 輸出*號 每遞增一次i換一次行 for i=1 to n/2 打出下三角的*號 for j=1 to 2*i 輸出空格 for k=1 to (n-2)-2*(i-1) 輸出*號 每遞增一次i換一次行
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明。
- 在找每行號前的空格數時遇到問題 解決辦法:把每行的行數,輸出號數,空格數寫出來,慢慢找規律,發現上三角的規律是空格數=高度-2行數+1 ;下三角的規律是空格數=2行數(從下三角第一行開始的行數)
- 輸出最後一行後多一行 解決辦法:在下三角的換行條件前加一行判斷語句,若下三角的行數已經等於高度的一半直接打破迴圈語句
題目2:7-6 掉入陷阱的數字1. 本題PTA提交列表
2. 設計思路
int trap(int n); //函式宣告主函數:定義number表示輸入的數,i來控制迴圈輸入數字numberfor i=1 to 到一個數字和它的產生的新數相等時停止 調用函數輸出要求的格式內容(i:trap(number)) 將number賦值為它的陷阱新數trap(number) int trap(int n) //該函數返回陷阱新數N定義a統計數位,i控制迴圈 ,N為新數 ,b於n等值用來統計位元 for a=1 to b!=0 b/=10 for i=1 to a //算新數 將其各位元字相加求和,再將其和乘以3後加上1 ,求出新數N返回N
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明。
- 沒有任何輸出(沒有進迴圈)解決辦法:發現是迴圈條件弄成新老數相等時結束
- 輸出到第二個數就錯了 解決辦法:在trap函數的統計數位那一個迴圈後面加了輸出位元,發現位元都是統計錯的,然後看了一下迴圈結束條件,原來是條件寫成b==0了應該是b!=0
- 發現程式不能輸出兩個相等的數,也就是第三個數和第四個數相等,但是只輸出了第三個數,而題目的例子應該是輸出第三個和第四個數字 解決辦法:我將主函數中的迴圈輸出的結束條件放在了輸出之後就實現了
題目1:7-10 簡單計算機1. 本題PTA提交列表
2. 設計思路
定義number1 表示第一個數 number2表示後面的數 op表示符號位輸入number1for to op=getchar()!= ‘=’ 輸入number2 如果分母為0時輸出錯誤提示 如果輸入符號為+ 計算 total=number1+number2 如果輸入符號為- 計算 total=number1-number2 如果輸入符號為* 計算 total=number1*number2 如果輸入符號為/ 計算 total=number1/number2 如果輸入其他符號輸出錯誤提示 最後number1=total 再進行下一輪計算輸出number1
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明。
- 剛剛開始不知道該把輸入字元資料的那個放在個位置才好 解決辦法:詢問同學,同學告訴我把它放在迴圈條件裡,同時判斷它是否等於‘=’就可以實現迴圈
- 在部分錯誤中,只有出現錯誤提示的條件正確,其他的答案錯誤 解決辦法:在最後把total的值賦給number1繼續進行下一輪
二、本周題目集的PTA最後排名。
三、本周學習總結1.你學會了什嗎?1.1 一維數組如何定義、初始化?1.2 一維數組在記憶體中結構?可畫圖說明。數組名表示什嗎?1.3 為什麼用數組?1.4 介紹選擇法、冒泡法、直接插入排序如何排序?虛擬碼展示1.5 介紹什麼是二分尋找法?它和順序尋找法區別?1.6 二維數組如何定義、初始化?1.7 矩陣轉置怎麼實現?方陣中:下三角、上三角、對稱矩陣的行標i列標j的關係?請說明。1.8 二維數組一般應用在哪裡?2.本周的內容,你還不會什嗎?
C語言部落格作業--資料類型