C語言部落格作業--一二維數組

來源:互聯網
上載者:User

標籤:語言   不同   重複   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進位?寫虛擬碼?
  • 16進位

    定義數組si[60]存放字串,number存放結果,i用於下標遞增     輸入字串     如果是0~9的數字字元     number=number *16+si[i]-‘\0’     如果是A~F的大寫字母     number=number*16+si[i] - ‘A‘+10     如果是a~f的小寫字母     number=number*16+si[i] - ‘a‘+10
  • 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語言部落格作業--一二維數組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.