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

來源:互聯網
上載者:User

標籤:1.3   尋找   ber   思路   1.7   學習   簡潔   作業   error   

7-4 列印菱形圖案1. 本題PTA提交列表(要提交列表,不是結果)

2. 設計思路(用代碼錶示扣分)
  • 定義迴圈變數i,j,k,n,列印行數number,
    輸入要列印的行數number
    for(i=1;i<=迴圈條件;i++)用於控制輸出的行數
    for(j=1;j<=迴圈條件;j++)用於控制輸出空格數
    先輸出上半個菱形,輸出(number+1)/2行
    輸出每行前的空格個數,再輸出 ,換行。
    輸出下半個菱形
    for(i=1;i<=迴圈條件;i++)
    for(j=1;j<=迴圈條件;j++)
    輸出((number+1)/2-1))行, 輸出每行前的空格個數,再輸出

    3.代碼(注意,,,。不要粘貼部落格上。不用用···文法去渲染)
  • 這是之前的錯誤碼

4.本題調試過程碰到問題及PTA提交列表情況說明。
  • 1.一開始輸出的上三角與輸入的數字number一樣多,不符合題目要求。

  • 解決辦法:這個問題,,,用兩個數字運行了兩遍以後就發現是我的迴圈條件有錯,我有試著找他們的規律,可是我找到的規律不具有普遍性,所以前面輸出的空格個數用小資料測試還對,用大資料測試因為前面空格不夠就都擠到後面,整個無法構成菱形,最後實在找不出來就求助了同學。
  • 2.本來我的設計思路是先輸出上半個菱形後再輸出下半個菱形,可是我,,,,,,又找不出迴圈條件。
  • 解決辦法:這樣的迴圈條件對我來說太難找了,所以室友建議我換個思路,在一開始就用條件來限制,當i小於(number+1)/2時進入第一個迴圈輸出上三角,否則輸出下三角。

7-6 掉入陷阱的數字1. 本題PTA提交列表(要提交列表,不是結果)

2. 設計思路(用代碼錶示扣分)
  • 定義輸入的數字number,sum存放經過計算後的和,flag用於存放上一個產生的新數,digit用於存放取餘得到的數,迴圈變數i,j。
    for(i=1;i>0;i++){
    將number的值賦給flag
    for(j=1;j>0;j++){
    對number取餘,取出number的每一位元後進行運算sum=sum+digit;sum=sum*3+1;
    輸出i:sum的值。
    將sum的值賦給number,將sum再次賦值為0。
    進行判斷 if(flag==number)及當前運算所得數與上一個數相等時退出迴圈。}
3.代碼(注意,,,。不要粘貼部落格上。不用用···文法去渲染)

4.本題調試過程碰到問題及PTA提交列表情況說明。
  • 1這題一開始將輸入數字是個位元還是更多位元進行分開討論導致代碼十分長。
  • 解決辦法:就是覺得代碼怪怪的,就調試當中突然想到這兩種情況能不能放在一起做,一開始我分成了兩組來討論一組一個迴圈,後來我直接將判斷個位元那個迴圈刪掉發現不可以做,後來換成嵌套迴圈就好了。
  • 2.當數字已經掉入陷阱,程式卻無法退出迴圈。

  • 解決辦法:一開始我本來想用數組來存放上一次產生的新數,可是我數組還不夠熟練老是調不出來,後來同學建議在增加一個變數來存放上一次產生的數字,就可以正常退出迴圈了。

7-10 簡單計算機1. 本題PTA提交列表(要提交列表,不是結果)2. 設計思路(用代碼錶示扣分)
  • 定義兩個變數value1,value2表示輸入的運算元,定義ch為輸入運算子。
    輸入value1輸入一個運算子op
    do{
    輸入另一個運算元
    switch(ch){
    case ‘+‘: value1=value1+value2
    case ‘-‘: value1=value1-value2;
    case ‘‘:value1=value1value2;
    case ‘/‘: value1=value1*1.0/value2;
    如果value2==0輸出ERROR
    default: printf("ERROR")}while(ch!=‘=‘)
    輸出value1的值
3.代碼(注意,,,。不要粘貼部落格上。不用用···文法去渲染)4.本題調試過程碰到問題及PTA提交列表情況說明。
  • 1.我一開始用了另一個變數result來存放value1和value2的運算結果,輸出時就連1+2=都不對。
  • 解決辦法:再次檢查代碼發現我的運算元和運算子是分開輸入的,那麼我的前兩個運算數所得的結果應該也要參加下一次運算,可是我的程式沒有做到這一點,所以我就放棄了result改用value來存放兩個運算數的運算成果。
  • 2.除法分母為0或有非法運算子時我的程式就不正確了。
  • 解決辦法:
二、本周題目集的PTA最後排名。

三、本周學習總結1.你學會了什嗎?1.1 一維數組如何定義、初始化?
  • 數組定義形式一般為 類型名 數組名[數組長度],初始化形式一般為 類型名 數組名[數組長度]={初值表},初始化可以只針對部分元素,沒有初始化系統預設初始值為0

    1.2 一維數組在記憶體中結構?可畫圖說明。數組名表示什嗎?
  • 數組名是一個地址常量,存放數組記憶體空間的首地址。

    1.3 為什麼用數組?
  • 數組可以定義一些具有相同類型的變數並存放他們的值,運用數組可以使表達更簡潔,可讀性好,便於運用於迴圈結構。

    1.4 介紹選擇法、冒泡法、直接插入排序如何排序?虛擬碼展示.
  • 選擇法:定義輸入數字個數number,i,j,中間變數temp,最小值下標min.定義數組a[i]
    for(i=1;i<=number;i++){
    min=i;min用於存放最小值所在下標
    for(j=1;j<=i;j++){
    如果a[i]<a[min] 將a[i]與a[min]中的元素進行交換
    輸出數組中的元素。
  • 冒泡法:定義輸入的數字個數number,i,j,中間變數temp,數組a[i]
    for(int i=0;i<;i++){
         for (int j = array.length - 1; j > i; j--) {
    如果a[i]<a[i-1] 交換a[i]和a[i-1]中的元素
  • 直接插入排序:定義輸入的數字個數number,i,中間變數temp,數組a[i]
    for(int i =1;i<number;i++){
    temp=a[i];
    while(temp<a[i+1]){
    判斷a[i+1]與a[i+2]是否相等,不相等時結束迴圈}
    temp+a[ia=2];
    輸出temp.

    1.5 介紹什麼是二分尋找法?它和順序尋找法區別?
  • 1.6 二維數組如何定義、初始化?
  • 二維數組的定義形式為 類型名 數組名[行長度] [列長度]。 初始化形式: 類型名 數組名[行長度] [列長度]={{初值表0}‘‘‘{初值表k},‘‘‘};

    1.7 矩陣轉置怎麼實現?方陣中:下三角、上三角、對稱矩陣的行標i列標j的關係?請說明。
  • 轉置時需設定一個中間變數x,x=a[i][j],a[i][j]=a[j][i];a[j][i]=temp。

    1.8 二維數組一般應用在哪裡?
  • 2.本周的內容,你還不會什嗎?
  • 對於三種排序方法到底是怎麼運用的還是一知半解,

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.