標籤:ber 複雜 輸入 運算子 count 注意 運算 正確答案 技術分享
一、PTA實驗作業6-3 使用函數判斷完全平方數:1. 本題PTA提交列表:
2. 設計思路:
3.本題調試過程碰到問題及PTA提交列表情況說明:
- 1.一開始考慮讓輸入值N去整除一個迴圈變數i,i隨著迴圈次數改變而改變,N每次除兩次i,能得到1的值時便為完全平方數,返回1值,否則當i>N/2迴圈結束,則返回0值;一開始覺得這個做法很可行,但實際上一經運行調試後發現錯誤很多,後來發現是因為沒有考慮1和0的特殊性,但是就算考慮了也仍不對,在同學的建議下用了逆向思路即若i*i==N,return 1;用i值來湊N值;然後現在又用第一次的思路做了一遍,想弄清之前思路到底錯哪兒,卻發現一次就過,這才明白先前沒有弄懂當被調用的函數一旦Return後就不會再執行後面的語句,所以之前考慮了一堆條件,越複雜越容易錯;
- 2.這張是現在用一開始的思路做的正確答案;
- 3.可是後來又發現了一個問題,當被調用函數返回一個值後不是應該馬上結束執行嗎,為什麼當我把if(n==0||n==1) return 1;語句放在迴圈外時是對的,而將其放在迴圈裡面時則不正確,似乎是個無效語句???
- 4.這張圖是把if(n==0||n==1) return 1;語句放在迴圈內,是錯誤的,不知道為什嗎???希望有大神幫忙解答;
6-6 使用函數輸出水仙花數:1. 本題PTA提交列表:
2. 設計思路:
3.本題調試過程碰到問題及PTA提交列表情況說明:
3.本題調試過程碰到問題及PTA提交列表情況說明:
2.My Code;
3.我和同學代碼不同在哪裡?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪裡出問題。
三、本周題目集的PTA最後排名:
四、本周學習總結:1.你學會了什嗎?1. C語言哪些資料類型?
- 1.整型變數和常量,浮點型變數和常量,字元型變數和常量;
2. 字元型資料需要注意地方?
- 1.‘A‘和‘a’是不同的字元型常量;
- 2.‘A’+1對應字元‘B’;
- 3.小寫字母轉為大寫字母:ch=ch-‘a‘+‘A‘或者ch=ch-‘b‘+‘B‘等等;大寫字母轉化為小寫字母:ch=ch+‘a‘-‘A‘;
- 4.小寫字母比大寫字母的ASCLL碼多32;
- 5.getchar()和putchar()只能處理單個字元的輸入和輸出;
- 6.空格與斷行符號符都會被%c吸收;
7.‘1’的ASCLL碼是49;‘A’的ASCLL碼是65;
3. 自增自減運算子?
1.首碼++先+1再賦值,尾碼++先賦值再+1;
4. 運算子優先順序?
2.單目運算子,條件運算和賦值運算的結合放向從右至左,算數運算(雙目運算子),移位元運算,關係運算,位邏輯運算和邏輯運算結合方向從左至右;
5. C語言哪些運算式?課堂派哪裡做錯,做錯的請在這裡分析原因?
- 1.當賦值符左邊的變數和右邊的變數類型不同時,先計算右邊的值,再賦值給左邊,且要轉換成左邊的變數類型;
- 2.double 3得到3.0;int3.8得到3;
- 3.首碼++(--)和尾碼++(--)的區別不是很清楚,首碼++先+1再賦值,尾碼++先賦值再+1;
- 4.當a=3時,a+=a-=a*a的值算錯,原因是沒意識到a是一個變數,在從右往左算的過程中a為9時仍把a當3來計算;
5.不明白8>6>3的值是多少,即對關係運算子的原理不清楚,後來明白單目運算子從左往右結合,先算8>6,得1(關係運算子的結果不是1就是0),很明顯1>3不成立,所以得0;
6.其他內容?
- 1.異或:相同為0,不同為1;
- 2.取反(位非運算):0變為1,1變為0;
3.按位“與”和異或的規則相反,按位“與”是不同為0,相同為1;
2.本周的內容,你還不會什嗎?
1.逸出字元的用法不太清楚;
- 2.ASCLL碼對應的字元不太清楚;
3.進位間的轉換不是很清楚;
3.迴圈結構考試總結(全部同學都要寫)
1.哪題做錯了,怎麼改?2.考試結果滿意麼,怎麼改進?3.其他總結。
C語言函數2