標籤:while bin nfa 原因 count 風格 整數 表達 分析
一、PTA實驗作業題目1:6-5 使用函數輸出一個整數的逆序數1. 本題PTA提交列表
2. 設計思路(1)定義整型變數count,m,j,k分別存放輸入的數number的位元,number的值,迴圈次數,number每一位元的位元,並賦初值count=0,m=number(2)number=number/10,count++(3)當number!=0時重複步驟(2)求得number是一個count位元(4)k=1,迴圈執行count-1次k=k
10求得number的每一位元是第幾位,number=number+m%10k將number的每一位元進行倒敘並累加(5)判斷m/10!=0若是則m=m/10確保每一位元都進行上述操作(6)當count>0時迴圈執行(4)(5)並count--(7)返回number的值3.本題調試過程碰到問題及PTA提交列表情況說明。-1.倒敘時出現04321類答案。解決辦法:在m=m/10之前添加條件判斷m/10!=0來判斷number是否是0結尾,若是則去0題目2:6-8 使用函數輸出指定範圍內的Fibonacci數1. 本題PTA提交列表
2. 設計思路int fib(int n)(1)定義整型變數i,result,f1,f2分別存放迴圈次數,最終結果,該Fibonacci數的第前一項Fibonacci數,該Fibonacci數的第前二項Fibonacci數(2)判斷輸入的項數n是否為1或者2,若是則return 1表示Fibonacci數第一項和第二項均為1(3)result=f1+f2,f1=f2,f2=result(4)當n>=3時迴圈執行n-2次步驟(2)實現每項Fibonacci數等於前兩項之和(5)return resultvoid PrintFN(int m,int n)(1)定義整型變數a,count分別存放Fibonacci數的項數和判斷區間[m,n]中是否有Fibonacci數,賦初值count=0(2)a=1(3)判斷fib(a)>=m,若真則輸出fib(a)的值且count=1。判斷fib(a+1)<=n,若真則輸出空格符(4)當fib(a)<=n時重複執行步驟(3)(5)判斷count==0,若真則輸出No Fibonacci number3.本題調試過程碰到問題及PTA提交列表情況說明。- 1.當n=m時沒有答案解決辦法:判斷fib(a)與m,n的關係時用 >= 或 <=題目3:7-1 求組合數1. 本題PTA提交列表
2. 設計思路(1)進行double fact(int n)函式宣告(2)定義整型變數m,n分別存放共有n個不同元素,取m個元素,定義浮點型變數result存放組合數結果(3)輸入m,n的值(4)result=1.0
fact(n)/(fact(m)fact(n-m))計算從n個不同元素取m個元素的組合數並輸出(5)定義函數double fact(int n)(6)定義浮點型變數result存放n!並賦初值result=1(7)判斷n是否為0,若為0則return 1;否則迴圈執行n次result=result*n求出n!(8)return resul3.本題調試過程碰到問題及PTA提交列表情況說明。1.輸出結果有小數解決辦法:輸出格式改為%.0f2.n=m時沒有答案解決辦法:判斷fact(n)中的n是否為0,若為0則返回1二、同學代碼結對互評1.同學互評照片。2.My Code、互評同學代碼My Code:王林聰的代碼:3.我和同學代碼不同在哪裡?有哪些各自優勢?你更喜歡哪種代碼風格?不同點和優劣勢:My Code先求出運算元是幾位元然後再用嵌套迴圈結構依次逆序,變數繁多,結構複雜。而王林聰同學的代碼僅用到一個變數N和一句while迴圈即求出結果,更加直觀簡潔。我更喜歡王林聰同學的代碼。三、本周題目集的PTA最後排名。
四、本周學習總結1.你學會了什嗎?1.1 C語言哪些資料類型?整型資料,實型資料,字元型資料1.2 字元型資料需要注意地方?1.互換整型變數和字元型變數的定義和值時,整型資料的取值範圍是有效ASCII碼2.‘a‘和‘A‘是不同的字元型常量,‘0‘和0是不同類型的常量,前者是字元型常量,而後者是整型常量1.3 自增自減運算子?1.++n的運算順序是:先執行n=n+1,再將n的值作為運算式++n的值n++的運算順序是:先將n的值作為運算式n++的值,再執行n=n+12.自增運算子和自減運算子的運算對象只能是變數,不能是常量或者運算式1.4 運算子優先順序?課本p1321.5 C語言哪些運算式?課堂派哪裡做錯,做錯的請在這裡分析原因?
C語言部落格作業--函數