標籤:技術 編程 tps 異或操作 題目 一個 能力 運算子 自己
一、PTA實驗作業題目1:7-2 求整數序列中出現次數最多的數1. 本題PTA提交列表
2. 設計思路(用代碼錶示扣分)
- int n為輸入的整數i,j,是迴圈變數,count=0表示出現最多的數的次數,indexindex表示出現最多的數的下標;
- 定義數組a儲存輸入的值,b儲存數組中每個數出現的次數
- 輸入("%d",&n);
- 將輸入的數賦給數組for(i=0;i<n;i++),scanf("%d",&a [i]);
- 令數組b的前n個數的初值為-1
- for(i=0;i<n;i++)for(j=0;j<n;j++)
- 如果(a[i]==a[j])b[i]++;
- 尋找出現次數最多的數:for(i=0;i<n;i++)
- 如果 if(b[i]>count)
- count=b[i];最大值下標index=i;
- 輸出:("%d %d",a[index],count);
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明。
- 在對錶示出現次數的數組b賦初值時出現錯誤,開始將b中每個數的初值賦為-1,想的是a[i]和b[i],表示同一個值就不算了,調試後發現錯誤並改正
- 最小值出現錯誤,粗心導致的錯誤,習慣了將迴圈變數的初值賦為1,忘了在數組中第一個變數的下標是1
題目2:1. 本題PTA提交列表2. 設計思路(用代碼錶示扣分)3.代碼4.本題調試過程碰到問題及PTA提交列表情況說明。
題目3:1. 本題PTA提交列表2. 設計思路(用代碼錶示扣分)3.代碼4.本題調試過程碰到問題及PTA提交列表情況說明。二、本周題目集的PTA最後排名。三、同學代碼結對互評1.互評同學名稱2.My Code、互評同學代碼3.我和同學代碼不同在哪裡?有哪些各自優勢?你更喜歡哪種代碼風格?四、本周學習總結1.你學會了什嗎?1.1 C中如何儲存字串?
-c 語言中用一維字元數組來儲存:類型名 數組名[數組長度]
- eg.儲存字串happy:char s [6]={"happy"}或char s [6]={‘h‘,‘a‘,‘p‘,‘p‘,‘y‘}
1.2 字串的結束標誌是什麼,為什麼要結束標誌?
- ‘\0‘是字串的結束標誌
- 因為字串並沒有顯示地給出有效字元的個數,所以必須用結束符來決定是否結束迴圈
1.3 字串輸入有哪幾種方法?
- 1.使用迴圈結構輸入,用結束符來結束迴圈:scanf("%c", )語句
- 2.scanf("%s", )輸入,但不能碰到空格
- 3.gets()直接吸收整個字元,遇‘\n’終止
1.4 數字字元怎麼轉整數,寫個虛擬碼?1.5 16進位、二進位字串如何轉10進位?寫虛擬碼?2.本周的內容,你還不會什嗎?
詳細羅列不明白地方,包括課堂派錯題、PTA錯題。
3.期中考試小結3.1 你認為為什麼沒考好?
- 1.平時只注重pta上的作業,只在乎那個結果是否正確,忽略了好多知識點
- 2.學習不認真,不紮實,很多概念和小知識自己根本沒有掌握
- 3.閱讀程式方面能力不足,平時欠缺對這方面的訓練
- 4.自我差錯能力不行,平時例如很小的標點符號錯誤都是通過devc發現的
3.2 羅列錯題。:選擇第十八題
- 錯因:沒有弄清各個運算子的優先順序,沒有先轉成二進位然後再轉回八進位,沒有注意到取反、異或、左移、&運算子操作後不改變原先變數的值
:先將057轉化為二進位:00101111,再將其取反,再將00101111左移兩位後與00101111進行&操作,再將操作結果和00101111的取反值進行異或操作,最後將其轉換為八進位
:填空第三題:
- 錯因:沒有將字
改正:轉換為字元即可
請在選擇題、填空題、改錯題、編程題分別舉一題說明為什麼錯了,怎麼改?
3.3 下半學期要怎麼調整C的學習?
- 1.利用好預習的價值,未上課前好好看課本並完成課堂派上的習題,明白哪裡是自己看不懂的地方,上課要更加註意聽講
- 2.做好筆記,事實證明只聽老師上課講一次下課後百分之九十九都忘記了,自己不懂得,重要的知識點要及時記錄,課後溫習
- 3.做好課後複習工作,上完一堂課,就該回過頭來看一下這一堂課的課本內容以及自己記錄的筆記
- 4.對待作業要認真, 錯題要弄懂,不能只關注結果
5.pta上的題以後盡量手寫代碼,遇到問題不能總藉助devc,先自己分析
C語言部落格作業--一二維數組