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

來源:互聯網
上載者:User

標籤:記錄   錯誤   scan   http   一段   溢出   完成   變數賦值   記憶體   

一、PTA實驗作業題目1:7-1 將數組中的數逆序存放1. 本題PTA提交列表

2. 設計思路
定義數組數n,迴圈變數i,j輸入 n定義數組Num[n]for j=n-1 to j>=0共n次如果j等於0則輸出Num[j]否則在輸出Num[j]後還要輸出空格
3.代碼

4.本題調試過程碰到問題及PTA提交列表情況說明。- 由於是第一題所以沒有所遇到問題如下
  • 格式錯誤:在最後一個數字後多了空格
  • 解決方案:增加一個判斷,當判斷出是最後一個數時直接輸出
題目1:7-3 出生年1. 本題PTA提交列表

2. 設計思路
定義初始年份Year,不同的數字數量D, 用於儲存Year的Y,Y2,求和Sum=0,迴圈變數i,j,k,g定義數組d[4]={0}用於儲存年份的各個位元,Com[10]={0,1,2,3,4,5,6,7,8,9}用於與d[4]中的數比較,Count[10]={0}用於儲存Com[10]與d[4]比較的結果輸入 Year,D;Y=Year;Y2=Year;   while(1){      for i=0 to i<4共4次      對Year取餘,減少十倍      對d[i]從0到4分別賦予年份Year的個位元,十位元,百位元,千位元      for j=0 to j<4共4次           for g=0 to j<4     共4次            如果d[j]==Com[g]                 Count[g]++;     for k=0 to k<10共 10次            如果Count[k]!=0            令Count[k]=0方便下一輪迴圈            Sum++;統計年份中不同數位數量如果 Sum==D,符合題目所要求的不同數位數量            輸出("%d %04d",Y2-Y,Y2);//其中%04d位寬為4,不夠往左補0            break;結束迴圈Y2+=1;年份加一Year=Y2;Sum=0;//不同數字量初始化 方便下一次迴圈}
3.代碼

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

這道題想了很久沒有思路,後來聽了同學的口頭思路自己打了代碼,在Dev上成功後就提交成功了

題目1:7-4 簡化的插入排序1. 本題PTA提交列表

uploading-image-977788.png

2. 設計思路
定義非負整數n,插入的數m,中轉變數t,迴圈變數i輸入n定義數組a[10]for i=0 to i<n共n次     數組賦值輸入ma[n]=m令最後一個數組等於mfor i=0 to i<n共n次       如果a[n]<=a[i]       交換a[n]與a[i]的值for i=0 to i<n共n次       輸出a[i]
3.代碼

4.本題調試過程碰到問題及PTA提交列表情況說明。由於忘記了,所以沒有調劑過程,具體問題如下
  • 問題:”在遇到比要求的數大的數後我進行了交換,但導致了原數組中用於交換的數的缺失,即在數組輸出時沒有該數
  • 解決方案:代碼,在迴圈進行到比要求大的數之後,接下來數組中的數分別向後移動了一位
    具體操作如下:
二、本周題目集的PTA最後排名。(2分)

三、同學代碼結對互評(1分)1.互評同學名稱:王宵瑩2.My Code、互評同學代碼
  • My Code

  • 王宵瑩的代碼

3.我和同學代碼不同在哪裡?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪裡出問題。
  • 不同之處:我與王的思路大體相同,但是我比王宵瑩多了一行判斷它只有一位元的情況代碼
  • 我更喜歡王宵瑩的,因為我覺得她的代碼更加簡潔
四、本周學習總結(3分)1.你學會了什嗎?1.1 C中如何儲存字串?
  • 使用字元數組存;
char name[] = "qinrui";
1.2 字串的結束標誌是什麼,為什麼要結束標誌?
  • 字串的結束標誌是‘\0‘
  • 字串是藉助於字元型一維數組來存放的,‘\0‘ASCLL代碼值為0,它作為標誌佔用儲存空間但不記入串的實際長度,所以用來作為字串的結束標誌。有了‘\0‘標誌後,就不必再用字元數組的長度來判斷字串的長度了,
    如果沒有的話會數組越界,記憶體溢出。程式崩潰。
1.3 字串輸入有哪幾種方法?
 (1)gets(a) (2)scanf ("%s", a)是讀到空格停止。
1.4 數字字元怎麼轉整數,寫個虛擬碼?
char  aint bb=int(a)
1.5 16進位、二進位字串如何轉10進位?寫虛擬碼?
 定義 十六進位數s,十進位sum,儲存s數n,s的位元num輸入 sn=swhile(s!=0)    s/=10;    num++;   計算s的位元定義數組a[num]將s的各個位元分別賦值入a[num]for i=0 to i<num共num次sum+=a[i]乘以16的i次方則sum就是16進位轉換得到的10進位二進位的轉換如上,就是將16的i次方改為2的i次方
2.本周的內容,你還不會什嗎?
  • (1).對於二維數組的輸入變數賦值
  • (2)

    3.期中考試小結
3.1 你認為為什麼沒考好?
  • (1)一些基礎知識沒有掌握,比如靜態變數和全域變數,以及資料運算中各種符號的演算法
  • (2)讀代碼的能力有待提高,在第二題剖析器上得分甚少
  • (3)粗心,有些題目在自己能力範圍內因為分析錯誤,看錯變數失分
3.2 羅列錯題。
  • 1.選擇題11
  • 基礎知識不牢固
  • 要多注重對基礎知識的掌握

  • 2.填空題4
  • 觀察錯變數
  • 減少對編譯器的依賴,增加自己的讀代碼能力

  • 3改錯題
  • 還是基礎知識沒有掌握牢固,還有錯題沒有及時複習
  • 在錯了之後,改了之後的一段時間內還要有對這方面複習的計劃

  • 4編程題2
  • 公式錯誤
  • 對於這次的編程題27分我還是對自己比較滿意的

3.3 下半學期要怎麼調整C的學習?
  • 對於作業的安排計劃還不夠合理,現在的作業大部分還是等到周五晚和周末兩天完成,預習作業,部落格園與pta,搞得時間短任務重,學習效率不高
    所以計劃至少在周三前完成pta的一半,並寫一道到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.