C語言部落格作業--結構體

來源:互聯網
上載者:User

標籤:nio   gpo   指派陳述式   複數   har   姓名   不能   允許   浮動   

一、PTA實驗作業題目1:6-1 計算兩個複數之積1. 本題PTA提交列表

2. 設計思路
struct complex{    int real;    int imag;};//該結構體表示複數的實部和虛部struct complex multiply(struct complex x, struct complex y)//定義Function Compute複數間的乘法定義struct complex變數result表示函數的傳回值result.real=x.real*y.real-x.imag*y.imag計算result的實部result.imag=x.real*y.imag+x.imag*y.real計算result的虛部返回result
3.代碼

4.本題調試過程碰到問題及PTA提交列表情況說明。原本想直接return運算式但沒辦法同時返回虛部和實部,於是設定stuct complex變數result並返回題目2:7-1 計算職工工資1. 本題PTA提交列表

2. 設計思路
struct staff{    char n[10];    float j_money;    float f_money;    float z_money;    float s_money;};//該結構體表示員工姓名,基本工資,浮動工資,支出和實發工資定義struct staff 變數p[999]存放員工資訊,定義變數N表示輸入員工資訊的個數,變數i表示迴圈次數輸入Nfor i=0 to i=N-1輸入 員工的姓名,基本工資,浮動工資,支出end forfor i=0 to i=N-1計算員工實發工資=基本工資+浮動工資-支出end forfor i=0 to i=N-1輸出員工姓名 實發工資end for
3.代碼

4.本題調試過程碰到問題及PTA提交列表情況說明。一開始設定變數p數組長度為50但是提示不夠大,於是設為999題目3:7-2 時間換算1. 本題PTA提交列表

2. 設計思路
struct time{    int h;    int m;    int s;}; //該結構體表示時間的小時,分鐘,秒設定struct time 變數p設定變數n,k,l表示n秒後經過幾分鐘,幾小時輸入起始時間輸入n秒IF 起始秒+n秒<60 則秒=起始秒+n否則  k=(起始秒+n秒)/60 , 秒=(起始秒+n秒)%60    //表示超過幾分鐘IF 起始分鐘+k<60 則分鐘=起始分鐘+k否則 l=(起始分鐘+k)/60 ,分鐘=(起始分鐘+k)%60IF 起始小時+l<24 則小時=起始小時+l否則 小時=(起始小時+l)%24end IF輸出新的時間
4.本題調試過程碰到問題及PTA提交列表情況說明。不是很理解這道題和結構體之間的關係二、本周題目集的PTA最後排名

三、閱讀代碼1-如果一個數組中的所有元素儲存的都是指標,那麼我們就稱它為指標數組。

arr 是一個指標數組,它包含了 3 個元素,每個元素都是一個指標。parr 是指向數組 arr 的指標。啟示了我們數組裡也可以存放地址,然後設定成指標數組,但parr的定義形式應該理解為int (parr),括弧中的 表示 parr 是一個指標,括弧外面的int 表示 parr 指向的資料的類型。arr 第一個元素的類型為 int ,所以在定義 parr 時要加兩個 。2-輸入一個結構體類型變數的成員,並輸出。

程式使用了嵌套結構簡潔地表示出學生資訊,用student->的方式指向比(*student).省略兩個字元更加簡潔。通過C提供的函數malloc()來為指標分配安全的地址。函數sizeof()傳回值是計算給定資料類型所佔記憶體的位元組數。四、本周學習總結1.總結本周學習內容。
  • 結構體、共用體、枚舉這種構造資料類型特點。

    結構體和數組一樣都是構造型資料類型,和數組不同的是,結構體可以處理不同類型的資料。共用體是一種多變數共用儲存空間的構造類型,它允許幾種不同的變數共用同一儲存空間。共用體和結構體的區別:
     1.結構體每一位成員都用來表示一種具體事務的屬性,共用體成員可以表示多種屬性(同一儲存空間可以儲存不同類型的資料)。 2.結構體總空間大小,等於各成員總長度,共用體空間等於最大成員佔據的空間。 3.共用體不能賦初值。 4.共用體變數中的值是最後一次存放的成員的值如   a.i = 1;   a.ch = ‘a‘;   a.f = 1.5;  完成以上三個指派陳述式後共用體邊量的值是 1.5而 a.i=1 和 a.ch=‘a‘已無意義 共用體變數不能初始化例 union data {  int i;  char ch;  float f;  }a={1,‘a‘, 1.5}  錯誤!!!
    共用體的定義形式union 共用體名
    成員列表
    變數列表
  • 遞迴函式原理

    遞迴(recursion)就是子程式(或函數)直接調用自己或通過一系列調用語句間接調用自己,是一種描述問題和解決問題的基本方法。

     
        遞迴通常用來解決結構自相似的問題。所謂結構自相似,是指構成原問題的子問題與原問題在結構上相似,可以用類似的方法解決。具體地,整個問題的解決,可以分為兩部分:第一部分是一些特殊情況,有直接的解法;第二部分與原問題相似,但比原問題的規模小。實際上,遞迴是把一個不能或不好解決的大問題轉化為一個或幾個小問題,再把這些小問題進一步分解成更小的問題,直至每個小問題都可以直接解決。因此,遞迴有兩個基本要素:
     
        (1)邊界條件:確定遞迴到何時終止,也稱為遞迴出口。
     
        (2)遞迴模式:大問題是如何分解為小問題的,也稱為遞迴體。遞迴函式只有具備了這兩個要素,才能在有限次計算後得出結果
     
    在遞迴函式中,調用函數和被調用函數是同一個函數,需要注意的是遞迴函式的調用層次,如果把調用遞迴函式的主函數稱為第0層,進入函數後,首次遞迴調用自身稱為第1層調用;從第i層遞迴調用自身稱為第i+1層。反之,退出第i+1層調用應該返回第i層。
     
     
    遞迴函式的內部執行過程
     
        一個遞迴函式的調用過程類似於多個函數的嵌套的調用,只不過調用函數和被調用函數是同一個函數。為了保證遞迴函式的正確執行,系統需設立一個工作棧。具體地說,遞迴調用的內部執行過程如下:
     
        (1)運動開始時,首先為遞迴調用建立一個工作棧,其結構包括值參、局部變數和返回地址;
     
        (2)每次執行遞迴調用之前,把遞迴函式的值參和局部變數的當前值以及調用後的返回地址壓棧;
     
        (3)每次遞迴調用結束後,將棧頂元素出棧,使相應的值參和局部變數恢複為調用前的值,然後轉向返回地址指定的位置繼續執行。

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.