標籤:語言 不同 重複 16進位 gets 是什麼 內容 思考 simple
一、PTA實驗作業題目1:7-2 求整數序列中出現次數最多的數1. 本題PTA提交列表
2. 設計思路
定義變數n,i,j用於迴圈,count1,count2用於數的重複個數,number表示做為重複次數最多的數輸入n的值並定義a[n]for i=0 to i<n 輸入a[i] endfor i=0 to i<n i=i+2 for k=0 to k<n 若a[i]=a[k] count1++ 若a[i+1]=a[k] count2++end 若count1>=count2且count1>=sum sum=count1;number=a[i] 若count1<count2&&count2>=sum sum=count2;number=a[i+1] count1=count2=0end輸出number和sum的值
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明
最初的編輯運行結果認為可以,交上後部分正確
調試發現值與理想的不符
位置不同結果有正確與錯誤的區別,思考後加上與sum的比較後答案正確題目2:7-3 出生年1. 本題PTA提交列表
2. 設計思路
定義變數year,number,i,k=0,j=0,用於迴圈x用於存放每次的年份simple用於個位flag=0,sum,count=0;定義數組 a[4];輸入year,number的值 i=year while當i<pow(10,number滿足時 x=i; for j=0 to j<number simple=x%10; x=x/10; a[j]=simple; end sum=j; for j=0 to j<=sum for k=j+1 to k<=sum 若a[k]=a[j] break; 若k=sum count++ end end 若count=sum break; i++;count=0; while end輸出i-year,i的值
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明
一開始編輯時輸出不對,調試發現count不一樣,沒想象中的結果,改正後pta部分正確
自己在調試的時候感覺a[j]值奇怪,自己用printf讓其輸出
調整迴圈後感覺輸出正確,但pta顯示不正確
題目3:7-7 找鞍點1. 本題PTA提交列表
2. 設計思路
定義變數n變數i,j,k用於迴圈,flag,count用於判斷輸入n的值,並定義數組a[n][n]定義下標變數row=0,col=0for i=0 to i<n for j=0 to j<n 輸入a[i][j]endendfor i=0 to i<n row=i;flag=0 for j=0 to j<n 若a[i][j]>=a[row][col] col=j; 若j=(n-1)) for k=0 to k<n 若a[row][col]>a[k][col] flag=1;break 若k=n-1 count++; 輸出row與col的值 end endend 若flag=1且count=0 輸出NONE
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明自己一開始輸出不正確,讀自己代碼時發現輸出應該是row與col而不是i與j,會變化
改正後輸出沒有預想的效果,調試之後發現自己的條件設定問題,在count前加了k=n-1的條件
感覺輸出可以,pta部分正確
思考後在一個判斷條件上加了等號二、本周題目集的PTA最後排名
三、同學代碼結對互評1.互評同學名稱2.My Code、互評同學代碼3.我和同學代碼不同在哪裡?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪裡出問題四、本周學習總結1.你學會了什嗎?1.1 C中如何儲存字串?
可以定義字元數組實現,數組長度上限取80,以‘\n‘作為輸入結束符
1.2 字串的結束標誌是什麼,為什麼要結束標誌?
字串的結束標誌是‘\0’,‘\0’可以用來控制字元數組的輸入與輸出,控制迴圈
1.3 字串輸入有哪幾種方法?
- 使用gets()吸收整個字串遇到斷行符號結束
- 使用scanf語句輸入(注意沒有&)遇到空格與斷行符號結束
- 使用迴圈如while(link[k]=getchar()!=‘\n‘)結尾記得加link[k]=‘\0‘
1.4 數字字元怎麼轉整數,寫個虛擬碼?
- 定義數字字元number
- 輸入數字字元number的值
- number=number-‘0’
- 輸出number的值
1.5 16進位、二進位字串如何轉10進位?寫虛擬碼?
定義數組str[80]用於存放2進位數,定義number存放轉換為十進位的結果,i用於遞增 輸入字串number=number* 2+str[i]-‘0‘輸出number的值
2.本周的內容,你還不會什嗎?
自己在回答這道題的時候基礎不夠紮實,i++,所以其判斷是從第二個字元開始的,而且scanf輸出時遇空格停止,所以空格後不用考慮
自己在改錯題尋找方面還要加強3.期中考試小結3.1 你認為為什麼沒考好?
- 對於課本的知識沒有很好的消化吸收,課堂派的錯題也沒有好好理解,對待預習作業不夠認真
- 選擇題得分不好,自己在一些賦值,運算子的計算順序上不夠紮實
- 自己手寫代碼的失誤較多,平常有Dev-c++的協助找錯,在自己手寫時,就出現許多問題
- 自己讀代碼的能力不夠,一些題目的要求沒有很好的理解
在代碼改錯方面也應加強,平常要注意小細節
3.2 羅列錯題。
3.3 下半學期要怎麼調整C的學習?
- 自己要合理安排複習時間,多迴歸課本,不局限於打代碼
- 多理解,查看自己的錯題,減少自身的失誤
- 多讀讀別人的代碼,提高自己的讀代碼能力
- 減少對Dev-c++的依賴,自己草稿找錯驗證
C語言部落格作業--一二維數組