C語言部落格作業--資料類型

來源:互聯網
上載者:User

標籤:沒有   break   針對   提示   題目   ges   陷阱   ber   記憶體   

一、PTA實驗作業題目1:7-6 掉入陷阱的數字1. 本題PTA提交列表

2. 設計思路
Beginint 整型變數N,number提取每個位的數字,sum計算和,i,n,j輸入Nfor(i 1 to 10000;i加一){sum=0; n=N;//引入n,來保留N的值計算number=N/10;if(number等於0)//位元為1則 sum=N*3+1否則{//位元不是1for(j 1 to 5;j加一){number=N%10;sum=sum+number; N=N/10;}sum=N*3+1}if(sum等於n)輸出i:sum且跳出迴圈,結束程式否則輸出i:sum並使N=sum}End
3.本題調試過程碰到問題及PTA提交列表情況說明
  • 錯誤碼
  • 正確代碼

    看到PTA上的錯誤提示“正常範圍多位元,帶有0”,就知道不能用while(number!=0)來計算sum
    所以就改為了for迴圈,因為題目是一個小於30000的數,所以最多迴圈5次
題目2:7-7 發紅包1. 本題PTA提交列表

2. 設計思路
Beginint 整型變數money,thousand,fifty,twenty,ten,five,two,one輸入money計算thousand=money/100;       money=money-thousand*100;計算fifty=money/50;       money=money-fifty*50;計算 twenty=money/20;        money=money-twenty*20;計算ten=money/10;       money=money-ten*10;計算five=money/5;       money=money-five*5;計算two=money/2;       money=money-two*2;計算one=money;輸出 100元:thousand張\n          50元:fifty張\n         20元:twenty張\n         10元:ten張\n           5元:five張\n            2元:two張\n            1元:one張End
3.本題調試過程碰到問題及PTA提交列表情況說明
  • 錯誤碼
  • 正確代碼

    一開始題意沒太懂,使用了多重迴圈的結構,導致了運行出來出來了好多好多結果;題目要求錢的張數最少,所以用運算式就可以解決題目了。
題目3:7-8 判斷合法標識符1. 本題PTA提交列表

2. 設計思路
Beginint 整型變數num為運算次數,flag=1,count=0為判斷條件,i,j,kchar 數組a[79],ch吸收輸入num後的斷行符號輸入numch吸收輸入num後的斷行符號for(i  0 to num-1;i加一){ for(j 0 to 78;j加一){輸入數組a[j]if(j等於斷行符號)break跳出迴圈;}if(a[0]是數字)則flag為0for(k 1 to 78;k加一){if(a[k]是字母、數字、底線)則count加一if(k等於j)則跳出迴圈}if(flag不為0且count等於k-1)輸出Yes //等於k-1是因為最後的空格也使count加一if(flag等於0或者count不等於k-1)輸出No使count,flag變為初值,進行下一次迴圈//count=0;flag=1}End
3.本題調試過程碰到問題及PTA提交列表情況說明
  • 錯誤碼

    剛開始用的是getchar,但思路寫著寫著就沒了,然後就換用剛學的一維數組來寫,是想著數組可以存放多個資料。


剛學數組對它的應用還不熟悉,就一點點的改


改到這的時候就覺得差不多了,看調試窗發現一次迴圈後沒有對判斷條件回複初值

  • 正確代碼

    最後說下在打這個題中影響我的地方
    1.在輸入運算次數num後要斷行符號,但數組是字元型的,就會被數組吸收,用了許多方法才想到用一次getchar把斷行符號吸收
    2.在輸出Yes,No時的條件也換了好多次,一個條件不夠,就再定義一個新的條件來滿足
二、本周題目集的PTA最後排名。

三、本周學習總結1.你學會了什嗎?
  • 1.1 一維數組如何定義、初始化?
    定義的一般形式:類型名 數組名 [數組長度];
    初始化一般形式:類型名 數組名 [數組長度]={初值表};如果是靜態儲存的數組static沒有初始化,系統會自動給所有的數組元素賦0;如果是動態數組static沒有初始化,所有的數組元素的值不確定。
  • 1.2 一維數組在記憶體中結構?可畫圖說明。數組名表示什嗎?

    數組名是一個地址常量,存放數組記憶體空間的首地址。
  • 1.3 為什麼用數組?
    數組是最基本的構造類型,它是一組相同類型資料的有序集合。在程式中使用數組,可以讓一批相同類型的變數使用同一個陣列變數名,用下標來相互區分。它的優點是表達簡潔,可讀性好,便於使用迴圈結構。
  • 1.4 介紹選擇法、冒泡法、直接插入排序如何排序?虛擬碼展示.
  • 選擇法

    Beginint 整型變數i,k為迴圈次數,index存放最小值所在的下標,change作為交換變數輸入數組長度nint 數組a[n]for(i 0 to n-1;i加一 )輸入數依次賦給 數組afor(k 0 to n-2;k加一 ){index放最小值下標k for(i k+1 to n-1;i加一)//在未排序的數中找到最小值與a[k]交換 if(a[i]<a[index])index等於1 a[k]與a[index]交換}依次輸出數組aEnd
  • 冒泡法

    Beginint 整型變數i,k為迴圈次數,change作為交換變數輸入數組長度nint 數組a[n]for(i 0 to n-1;i加一 )輸入數依次賦給 數組a for (i = 0; i < n-1; i++) {// n個數,n- 1輪冒泡,每一輪都將當前最大的數推到最後      for (j = 0; j < n-1 - i; j++) // n-1- i,意思是每當經過一輪冒泡後,就減少一次比較   if (a[j] > a[j+1])交換a[j],a[j+1] } 依次輸出數組aEnd
  • 直接插入法

    Beginint 整型變數i,k,j為迴圈次數,change作為交換變數輸入數組長度nint 數組a[n]for(i 0 to n-1;i加一 )輸入數依次賦給 數組afor(i 1 to n-1;i加一){change=a[i]for(j 0 to i-1;j加一){ if(change小於a[i]){ for(k i-1 to j;k減一){ a[k+1],a[k]交換}a[j]=change;跳出迴圈}}}for(i 0 to n-1;i加一)輸出a[i]End
  • 1.5 介紹什麼是二分尋找法?它和順序尋找法區別?
    二分尋找法就是先尋找數組中間位置的數,判斷其是否為要尋找的數,不是的話,大於要找的數,則往左繼續二分,小於要找的數,則往右二分。
    二分尋找法適用於排序過的數組,速度快,順序尋找法要遍曆數組,在數組很大時效率低,但對數組本身沒有要求,適用於短數組
  • 1.6 二維數組如何定義、初始化?
    定義形式:類型名 數組名 [行長度] [列長度];
    初始化有兩種形式:
    1.分行賦初值
    類型名 數組名 [行長度] [列長度]={{初值表0},...,{初值表k},...};
    若只對針對部分元素初始化,如果是靜態數組,其餘元素的初值為0;如果是動態數組,其餘元素的初值不確定
    2.順序賦初值
    類型名 數組名 [數組長度]={初值表};根據數組元素在記憶體中的存放順序,把初值表的資料依次賦給元素
    若只對針對部分元素初始化,要注意初值表中的資料的書寫順序
  • 1.7 矩陣轉置怎麼實現?方陣中:下三角、上三角、對稱矩陣的行標i列標j的關係?請說明。

    for(i 0 to 行長度-1) for(j 0 to 列長度-1)  if(i小於等於j)  a [i] [j] 和a [j] [i] 交換
    主對角線 i==j上三角     i<=j下三角     i>=j副對角線 i+j==N-1(N為行列長度)
  • 1.8 二維數組一般應用在哪裡?
    主要用於表示二維表和矩陣有關的問題。

    2.本周的內容,你還不會什嗎?
  • 1.在使用函數引用數組的時候,不清楚怎麼調用
  • 2.對於排序的幾種方法,思路還不太清晰
  • 3.數組的下標從0開始,還是有時候沒有意識到
  • 4.PTA的第八題打了很久,一開始就遇見了很多問題
  • 5.尋找數位代碼具體還不是很清楚

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.