C語言二維數組作業

來源:互聯網
上載者:User

標籤:1.3   簡單   修改   很多   語言   調試   解決   分享   二維數組   

一、PTA實驗作業題目1:7-3 出生年1. 本題PTA提交列表

2. 設計思路
  • 1、聲明一個函數different()用來計算一個年份的不同數字個數
  • 2、定義y(y是來計算符合要求的年份的量),n(n為題目要求的不同數字個數),x(x用來存放起始年份),flag(flag是用來表示每個y值中的不同數字個數的量)
  • 3、輸入起始年份y和題目要求的n
  • 4、x=y(存放起始年份)
  • 5、do {flag計算y中不同數字個數;如果flag=n,符合題意,輸出相應結果,並結束迴圈;如果不符合,y自增一}while(1)
  • 6、對函數different(y)定義:
  • 首先定義一個數組a[4]和不同數字個數count等於4;
  • a[4]存放y的每一位;
  • for(int i=0;i<4;i++) {for(int j=i+1;j<4;j++)如果a[i]=a[j,count減一,結束j的迴圈;
  • 函數結果返回count

    3.代碼


4.本題調試過程碰到問題及PTA提交列表情況說明。
  • 1、題目要求不足4位的年份要在前面補零,一開始不知道這個要怎麼輸出,百度後明白了只要輸出中使用%04d就能使不足的前面補零
  • 2、函數中j的迴圈內,如果a[i]=a[j,count減一,就要立刻結束j的迴圈;我漏了結束迴圈,使得在年份不是四位的情況下,count會被多減少好幾次

    題目2:7-7 找鞍點1. 本題PTA提交列表

2. 設計思路
  • 1、定義二維數組a[6][6]和n
  • 2、輸入n
  • 3、 for(i=0; i<n; i++) for(j=0; j<n; j++) { scanf("%d",&a[i][j]); } 輸入二維數組
  • 3、定義k=0,q=0,p=0(k,q,p都是下面迴圈要使用的),flag=1(flag是來判斷鞍點存不存在的)
    -4、for(i=0; i<n; i++) { q=i(下面需要用來判斷此行最大值是不是列所在最小值); 。。。。。。}
  • 5、 for(p=0; p<n; p++) { if(a[i][k]<=a[i][p]) //數組元素之間比較,若比a[i][k]大,則將數組列標賦給k k=p; } } 這裡找出行最大值,並將該最大值所在列的值賦給k,以便進行下一步行最小值的尋找
  • 6、for(j=0; j
  • 7、找到後只需比較i和j是否相等,相等則說明此行最大值是列所在最小值,讓flag等於0,結束迴圈
  • 8、if(flag==0) 輸出結果 else 輸出none
3.代碼


4.本題調試過程碰到問題及PTA提交列表情況說明。
  • 1、迴圈最開始,必須讓q=i,否則鞍點在最後一個時就會發生錯誤
  • 2、這裡迴圈有點多,我經常輸出錯誤後更改代碼不小心把某些迴圈的大括弧刪了,導致編譯錯誤= =

    題目3:7-10 楊輝三角1. 本題PTA提交列表

2. 設計思路
  • 1、定義數組a[10][10].i,j,n
  • 2、輸入n
  • 3、for(i=0;i<10;i++) 將行頭及對角線中存入1(a[i][i]=a[i][0]=1)
  • 4、for(i=2;i<n;i++){for(j=1;j<i;j++){}a[i][j]=a[i-1][j-1]+a[i-1][j];//將第三行起的數存入 } }存入第三行起除對角線外的所有數
  • 5、輸出數組

    3.代碼

4.本題調試過程碰到問題及PTA提交列表情況說明。
  • 1、我一開始j用的是小於等於i,結果把對角線上的數改變了
  • 2、第一次做的時候忘了換行,輸出結果錯誤

    二、本周題目集的PTA最後排名。
三、同學代碼結對互評1.互評同學名稱

李於程

2.My Code、互評同學代碼
  • My Code

  • 於程同學代碼

3.我和同學代碼不同在哪裡?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪裡出問題。
  • 於程同學是通過使用一個變數diff來進行累加,而我是將為1的元素先賦值好,然後中間的數用規律對數組進行加法得到
  • 我可能會更喜歡於程同學的代碼,因為其代碼比較短,用到的迴圈較少(我個人迴圈較多時容易亂)

    四、本周學習總結(3分)
1.你學會了什嗎?1.1 C中如何儲存字串?
  • 使用字元數組儲存字串

    1.2 字串的結束標誌是什麼,為什麼要結束標誌?
  • 結束標誌為‘\0‘
  • 結束標誌是用來判斷是否結束迴圈的

    1.3 字串輸入有哪幾種方法?
  • 1、直接輸入,如a[5]={"happy};
  • 2、使用scanf函數,格式控製為%s,輸入參數為字元數組名,遇斷行符號或空格結束
  • 3、使用gets函數,輸入參數為字元數組名,遇斷行符號結束

    1.4 數字字元怎麼轉整數,寫個虛擬碼?
  • 1、數字單個轉換:數字字元-‘0’
  • 2、多位轉換:
    -1.定義迴圈變數i,sum=0
    -2.i=0
    -3.while(a[i]!=‘\0‘) sum=sum*10+(a[i]-‘0‘)
    -4.i++

1.5 16進位、二進位字串如何轉10進位?寫虛擬碼?
  • 1、16進位
    -1.定義迴圈變數i,sum=0
    -2.i=0
    -3.while(a[i]!=‘\0‘)if(a[i]是數字字元)sum=sum16+(a[i]-‘0‘) if(a[i]是A-F)sum=sum16+(a[i]-‘A‘+10) if(a[i]是a-f) sum=sum*16+(a[i]-‘a‘+10)
    -4.i++
  • 2、2進位
  • 1.定義迴圈變數i,sum=0
  • 2.i=0
  • 3.while(a[i]!=‘\0‘)sum=sum*2+(a[i]-‘0‘)
  • 4.i++

    2.本周的內容,你還不會什嗎?
  • 1、雖然基本掌握了數組,但對其運用並不熟練
  • 2、數組的運用經常要使用很多迴圈,導致我經常將迴圈的量搞混(即使有注釋也經常沒注意到= =)
  • 3、雖然能夠理解排序法,但對於它的應用不夠熟練

    3.期中考試小結3.1 你認為為什麼沒考好?
  • 1、我的選擇題只得了8分,這說明我基礎知識掌握不夠紮實,要多看課本,加強對基本知識的瞭解和掌控
  • 2、我的改錯也不是很好,主要是一些邏輯錯誤看得出來,卻不知道怎麼修改,這一點我認為應該只有通過多做題增加經驗來解決
  • 3、編程題我做得尚可,但在一些涉及數學公式的因果應用上,我容易突然短路(例如其中編程第二題,我做的時候居然忘了怎麼解x了= =),我想這可能有心理因素的原因,或許是幾個月沒經曆過考試有點緊張了,這一點要儘力克服
  • 4、填寫代碼的題目雖然做得可以,但一些簡單的地方卻錯了,這是不應該的,究其原因,我認為還是基礎的問題,要多迴歸課本,掌握好最簡單的知識

    3.2 羅列錯題。請在選擇題、填空題、改錯題、編程題分別舉一題說明為什麼錯了,怎麼改?
  • 1、選擇題:

第一題我題目意思理解錯誤,我以為他問的是C語言可以輸出的數的進位位= =

  • 2、填空題:

第七空為ch=getchar(),我唯寫了ch,這是我沒把上課內容充分理解的原因,以後上完課我應該進行複習

  • 3、改錯題:

改錯比較尷尬,因為我知道它錯了,錯在哪,卻不知道怎麼改,我認為這是因為我閱讀程式能力不夠的原因,以後我要多讀程式,學會看程式

  • 4、編程題:

編程題其他兩題我做得不錯,這一題我也知道怎麼做,但是可能考試比較緊張了,我忘了怎麼求x的值了= =,考試時時間比較緊迫,就沒仔細去想,希望下次做題能夠保持頭腦清晰,不要著急

3.3 下半學期要怎麼調整C的學習?
  • 1、基礎知識要先掌握好,即課本的內容先精通,再來談更進一步的深奧內容
  • 2、通到期中,我明白了c的學習不只是pta上做編程題而已,一些基礎的理論的簡單知識也要明白
  • 3、下半學期,要在搞好基礎知識的情況下,將這些知識運用於編程中

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.