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

來源:互聯網
上載者:User

標籤:檢查   不執行   c++   ascii碼   而且   一個   閱讀   find   優勢   

一、PTA實驗作業題目1(7-6)(1).本題PTA提交列表

(2)設計思路
//天數n;數組下標i;小時數h,分鐘數m;對應書號的標籤數組flag[1001]//總閱讀時間sum初始化為0,借書次數k初始化為0//E或S的標誌ch;//定義a[1001]來放每本書的借出時間while (1)    if n等於0        //跳出迴圈    //輸入數組下標i;E或S的標誌ch;小時數h;分鐘數m;    if i等於0        //n自減        if k等於0            sum=0;        else             sum=sum與k的商        //輸出        //k、sum歸0;        //進入下一個迴圈    if ch的值為S        a[i]=小時數h乘上60再加上m;        flag[i]=1;    else         if flag[i]等於1        flag[i]=0;        sum+=歸還時間減去借出時間再轉換成分鐘數;        k++;
(3)代碼

(4)本題調試過程碰到問題及PTA提交列表情況說明
  • 當用邊界時間進行測試時,發現a[i]並沒有記入時間;而且,當一本書被多次借出時,只記入最後一次借出時的時間,因此出現了錯誤
  • 把let數組改成flag數組,記錄每一本書的狀態,當對應的flag值為1時不執行借出,消去可不要的變數
題目2(7-8)(1).本題PTA提交列表

(2)設計思路
//外迴圈次數repeat,迴圈變數i,j;矩陣階數n//輸入repeatfor repeat to 0    //輸入n    //定義n階矩陣a[n][n];    a[0][0]=2;//先使第一個元素為2    for i=0 to n-1 (n-1可取到)        for j=0 to i            a[i][j]=a[0][0]+i+j;//給矩陣賦值    //以規定格式輸出+     for i=0 to n     //輸出第一列        if i 等於n            //輸出佔一列的數        else             //輸出佔四列的數    //輸出分行符號    for i=0 to n-1        //輸出每列開頭的數        for j=0 to i            if i與j相等                //輸出佔一列的數            else                 //輸出佔四列的數            //輸出分行符號
(3)代碼

(4)本題調試過程碰到問題及PTA提交列表情況說明
  • 格式錯誤,原因在於當i等於j時要特殊輸出
題目3 (7-12)(1).本題PTA提交列表

(2)設計思路
//自訂的功能函數     void find(int a[],int b[],int n,int m)      //迴圈變數i,j;能存入a數組和b數組所有元素的數組c[n+m];標誌變數flag;計數變數cnt=0;for i=0 to n-1    flag=0;//初始化    for j=0 to m-1        if a[i]等於b[j]            flag++;    if flag等於0        c[cnt++]=a[i]//找出a數組對於b數組不相同的數,並存放在c數組中;for i=0 to m-1    flag=0;//初始化    for j=0 to n-1        if b[i]等於a[j]            flag++;    if flag等於0        c[cnt++]=b[i]//找出b數組對於a數組不相同的數,並存放在c數組中;for i=0 to cnt-1    flag=0;    if i等於0        //輸出佔一列的c[i]        //進入下一次迴圈    else        for j=0 to i-1            if c[i]等於c[j]                flag++;    if flag等於且i大於0        //輸出前有空格的c[i]    else if flag等於0且i等於0        //輸出佔一列的c[i]//主函數//a數組中元素個數n;b數組中元素個數m;迴圈變數i;//輸入n、m//定義a[n]、b[m]//輸入a[n]、b[m]//調用功能函數
(3)代碼


(4)本題調試過程碰到問題及PTA提交列表情況說明
  • 發現有重複的數輸出,並且某些數之間沒有空格隔開
  • 在if (i==0)處加入輸出語句和進入下次迴圈語句;在else處添加條件當flag等於0時才執行
二、本周題目集的PTA最後排名。PTA排名

三、同學代碼結對互評1.互評同學名稱

黃澤彬

2.My Code、互評同學代碼(此處核心代碼就好,不一定全部代碼,圖上指明是誰的代碼。


3.我和同學代碼不同在哪裡?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪裡出問題。
My Code將插入數作為數組的最後一位,而他把插入數單獨放在一個變數裡;他比我多用了一個數組,目的是將在把原數組往裡放的同時把插入數一併放好,然後一併輸出;他把數組元素個數為0、1、大於1時分出來做特殊輸出,而我直接把所有情況放在一起。我的優勢在於變數少,只使用了一個數組。他的優勢在於在n為0、1的情況下計算過程會更迅速,但是當n大於1時他的代碼比My Code計算過程可能要更多一些。My Code風格。
四、本周學習總結1.你學會了什嗎?
  • gets()函數、puts()函數、%s的使用
  • 用字元數組來解決進位相互轉換問題
  • 字元數組的基本性質,如字元數組儲存個數之類
  • 更深入瞭解二維數組在部分情景問題下的使用
1.1 C中如何儲存字串?
  • 定義字元數組儲存
1.2 字串的結束標誌是什麼,為什麼要結束標誌?
  • 結束標誌是‘\0‘
  • 使其他數組元素與這個字串無關
1.3 字串輸入有哪幾種方法?
  • 用gets()輸入,或迴圈後將最後一個賦值為‘\0‘
1.4 數字字元怎麼轉整數,寫個虛擬碼?
char i=‘9‘;int j;j=i-‘0‘;
1.5 16進位、二進位字串如何轉10進位?寫虛擬碼?16進位字串轉10進位
int i,sum=0,n;//輸入n;char a[n];//一串16進位字串gets (a);for i=0 to i<n    if a[i]大於等於‘0‘小於等於‘9‘        sum+=a[i]乘上16的i次方;    else if a[i]大於等於‘a‘小於等於‘f‘          sum+=(a[i]-‘a‘)乘上16的i次方;    else if  a[i]大於等於‘A‘小於等於‘F‘        sum+=(a[i]-‘A‘)乘上16的i次方;//輸出sum的值
二進位字串轉10進位
int i,sum=0,n;//輸入n;char a[n];//一串二進位字串gets (a);for i=0 to i<n    sum+=(a[i]-‘0‘)乘上2的i次方;//輸出sum的值
2.本周的內容,你還不會什嗎?詳細羅列不明白地方,包括課堂派錯題、PTA錯題。
  • 題目中的哪些可以使用二維數組來表示還不是很明白
  • 字元數組的輸入函數getchar()的用法,
  • 有時要輸入一串數字存在整型數組時的辦法
3.期中考試小結3.1 你認為為什麼沒考好?
  • 沒有用太多的時間去複習
  • 平時學習的知識掌握的不是很牢
  • 各個題型的時間分配並不好
  • 有些依賴於devc++的調試功能,寫代碼偶爾會漏了符號
  • 沒有想清楚就開始寫
3.2 羅列錯題。請在選擇題、填空題、改錯題、編程題分別舉一題說明為什麼錯了,怎麼改?選擇題的第九題
  • 錯在沒有理解&&和||的優先順序
填空題第三題
  • 錯在不知道ASCII碼為65的符號是什麼
改錯題最後一題
  • 錯在判斷是大於等於還是小於上面
編程題第三題
  • 錯在功能函數裡的變數設定上
  • 仔細檢查一遍
3.3 下半學期要怎麼調整C的學習?
  • 要兼顧c的基礎知識的學習,不能只重於PTA
  • 寫題目前先思考題目要求做什麼,要怎樣做到,和以前做過的哪個題目較相似,再思考該怎麼下手
  • 嘗試在一定時間裡寫完一道編程題-

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.