1. 程式人生 > >C語言博客作業—一二維數組

C語言博客作業—一二維數組

etc 字母 while tchar 二維 沒有 循環 分享 其他

一、PTA實驗作業

題目1:7-2 求整數序列中出現次數最多的數

1. 本題PTA提交列表

技術分享圖片

2. 設計思路

Begin
輸入整數個數N
定義數組a[N]
輸入數組a
for(i 0 to N-1){//進行N次判斷
for(j 0 to N-1)
if(a[i]和a[j]相等)
count加一
i等於0//第一次判斷
使max=count; n=i;//n放下標,max放次數
i不等於0且count大於max
使max=count; n=i;//重新賦值
count為0//每次循環count為0 
}
輸出a[n],max
End

3.代碼截圖

技術分享圖片

4.本題調試過程碰到問題及PTA提交列表情況說明。

  • 測試點
    技術分享圖片
  • 錯誤代碼
    技術分享圖片
    第一次寫的思路比價麻煩,設了兩個數組

    題目2:7-7 找鞍點

    1. 本題PTA提交列表

    技術分享圖片

    2. 設計思路

    Begin
    輸入數組a[i][j]
    row=col=0;//找行最大的數 
    for(i 0 to n-1)
    for(j 0 to n-1)
    if(a[i][j]大於等於a[i][col])
    row=i;col=j;//存放最大數的行列
    if(j==n-1)
    b[i]存放最大數,f[i]存放最大數所在列 
    col=0;//歸0
    同上面的方法,找列最小的數
    for(i 0 to n-1)
    for(j 0 to n-1)
    if(b[i]和d[j]相等) {//判斷最小數和最大數是否存在相等 
    輸出所在的行列數
    flag=1;}//flag作是否有的標誌 
    if(flag為0)則沒有
    End

    3.代碼截圖

    技術分享圖片

    4.本題調試過程碰到問題及PTA提交列表情況說明。

    技術分享圖片
    因為我的方法變量名很多,所以只能靜下心來舉例來一步步的改

    題目3:7-8 加法口訣表

    1. 本題PTA提交列表

    技術分享圖片

    2. 設計思路

    Begin
    輸入repeat
    for(i 1 to repeat)//作repeat次運算 
    輸入數組長度n並定義a[n+1]
    for(i 1 to n)//第一行第一列為1
    a[0][i]=i;
    a[i][0]=i;
    for(i 1 to n){//計算每一行的數 
    for(j 1 to n)
    a[i][j]=a[0][j]+a[i][0];
    第一行先輸出‘+’再輸出1
    最後一個數沒有空格且換行
    下面的行輸出同第一行
    End

    3.代碼截圖

    技術分享圖片

    4.本題調試過程碰到問題及PTA提交列表情況說明。

    技術分享圖片
    沒有註意最後一個數沒有空格

    二、截圖本周題目集的PTA最後排名。

三、同學代碼結對互評

1.互評同學名稱

  • 黃光奎

    2.我的代碼、互評同學代碼截圖

  • 黃同學的代碼
    技術分享圖片
  • 我的代碼
    技術分享圖片

    3.我和同學代碼不同在哪裏?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪裏出問題。

  • 在定義數組上我是先輸入n,再定義數組;而黃同學是直接定義a[10][10]。
    輸入第一行第一列時,我是一起循環,黃同學是分開。
    輸出我是分第一行和其他行,黃同學是分第一行第一列和余下的下三角。
  • 覺得各有千秋吧

    四、本周學習總結

    1.你學會了什麽?

    1.1 C中如何存儲字符串?

  • 存放在一維字符數組中

    1.2 字符串的結束標誌是什麽,為什麽要結束標誌?

  • ‘\0’ 對字符串進行操作時可以結束

    1.3 字符串輸入有哪幾種方法?

  • while((a[i]=getchar())!=‘\n‘)
    i++;
    a[i]=‘\0‘;
  • sacnf("%s",a);
  • gets(a);

    1.4 數字字符怎麽轉整數,寫個偽代碼?

    輸入數字字符
    輸出數字字符-‘0’

    1.5 16進制、二進制字符串如何轉10進制?寫偽代碼?

  • 十六進制

    十六進制數組a[n]
    for(i=0;a[i]不為‘\0’;i加一)
    若字符為數字
    n=n*16+a[i]-‘0‘
    若字符為小寫字母
    n=n*16+a[i]-‘a’+10
    若字符為大寫字母
    n=n*16+a[i]-‘A’+10
    輸出n
  • 二進制

    二進制數組a[n]
    for(i=0;a[i]不為‘\0’;i加一)
    n=n*2+a[i]-‘0‘
    輸出n

    2.本周的內容,你還不會什麽?

  • 1.二分查找法還不是很懂
  • 2.直接插入排序也還不是很懂
  • 3.pta7-9 判斷上三角矩陣這個題輸入輸出應該跟題目的例子一樣,但是答案錯誤

3.期中考試小結

3.1 你認為為什麽沒考好?

  • 對於基礎知識點有的遺忘,有的生疏
  • 讀程序的能力欠缺
  • 短時間內對一個編程題沒有很好的思路

    3.2 羅列錯題。

  • 技術分享圖片
    技術分享圖片
    這兩個題是考同一個知識點,從相反的方向出題,靜態局部變量的作用範圍是定義該變量的源文件範圍內,生存周期是從調用到程序結束。
  • 技術分享圖片
    一開始沒有看懂term那個表達式是怎麽計算的,思路就斷了。

    3.3 下半學期要怎麽調整C的學習?

  • 課堂派:認真做好預習作業,對於錯題要認真分析,把錯題弄懂
  • PTA:盡自己的能力多做題,提高效率,不做無用功
  • 博客園:對於每周的學習認真分析,總結得失,制定小目標
  • 課堂:認真聽老師的例題講述,盡可能弄懂知識點,打好基礎,互動自己獨立思考
  • 上機考試:提前備考,把必考代碼弄懂,在考試中不緊張,把題目題意弄懂,縷清思路,再打代碼

C語言博客作業—一二維數組