學(xué)習(xí)情境二第六講結(jié)構(gòu)體的初始化和賦值_第1頁
學(xué)習(xí)情境二第六講結(jié)構(gòu)體的初始化和賦值_第2頁
學(xué)習(xí)情境二第六講結(jié)構(gòu)體的初始化和賦值_第3頁
學(xué)習(xí)情境二第六講結(jié)構(gòu)體的初始化和賦值_第4頁
學(xué)習(xí)情境二第六講結(jié)構(gòu)體的初始化和賦值_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

學(xué)習(xí)情境二第六講結(jié)構(gòu)體的初始化和賦值**一、引入問題s[0]s[1]s[2]s[3]s[4]s[5]s[6]85897899756587趙錢孫李周武鄭

Math0C1Foxpro2張0807592王1616571李2596370趙3858790周47677852**一、引入問題根據(jù)學(xué)生成績表,統(tǒng)計出全班的最高成績、最低成績和每個人的平均成績。3**結(jié)構(gòu)體類型的定義定義一個結(jié)構(gòu)體的一般形式為:struct結(jié)構(gòu)體名{成員表列};成員表由若干個成員組成,每個成員都是該結(jié)構(gòu)的一個組成部分。對每個成員也必須作類型說明,其形式為:類型說明符成員名;結(jié)構(gòu)體名和成員名的命名應(yīng)符合標(biāo)識符的書寫規(guī)定。4**相關(guān)例題例如:structstu{intnum;charname[20];charsex;floatscore;};由此可見,結(jié)構(gòu)是一種復(fù)雜的數(shù)據(jù)類型,是數(shù)目固定,類型不同的若干有序變量的集合。結(jié)構(gòu)體名成員5**結(jié)構(gòu)體變量的定義結(jié)構(gòu)體變量有以下三種方法。1.先定義結(jié)構(gòu),再說明結(jié)構(gòu)變量。2.在定義結(jié)構(gòu)體類型的同時說明結(jié)構(gòu)體變量。3.直接說明結(jié)構(gòu)變量。6**先定義結(jié)構(gòu),再說明結(jié)構(gòu)變量例如:structstu{intnum;charname[20];charsex;floatscore;};structstuboy1,boy2;說明了兩個變量boy1和boy2為stu結(jié)構(gòu)體類型。即圖4-10所表示的數(shù)據(jù)結(jié)構(gòu)。

7**定義結(jié)構(gòu)體類型的同時說明結(jié)構(gòu)體變量。例如:structstu{intnum;charname[20];charsex;floatscore;}boy1,boy2;8**直接說明結(jié)構(gòu)變量例如:struct{intnum;charname[20];charsex;floatscore;}boy1,boy2;第三種方法與第二種方法的區(qū)別在于:第三種方法中省去了結(jié)構(gòu)體名,而直接給出結(jié)構(gòu)體變量。9**結(jié)構(gòu)體變量的初始化和其他類型變量一樣,對結(jié)構(gòu)體變量可以在定義時指定初始值?!纠?-18】外部結(jié)構(gòu)體變量初始化。源程序:structstu/*定義結(jié)構(gòu)*/{intnum;charname[20];charsex;floatscore;}boy2,boy1={102,"Zhangping",'M',78.5};voidmain(){boy2=boy1;printf("Number=%d\nName=%s\n",boy2.num,);printf("Sex=%c\nScore=%f\n",boy2.sex,boy2.score);}10**結(jié)構(gòu)體變量的賦值結(jié)構(gòu)體變量的賦值就是給各成員賦值??捎幂斎胝Z句或賦值語句來完成?!纠?-19】給結(jié)構(gòu)變量賦值并輸出其值。源程序:#include“stdio.h”#include“string.h”voidmain(){structstu{intnum;charname[20];charsex;floatscore;}boy1,boy2;boy1.num=102;strcpy(,"Zhangping");printf("inputsexandscore\n");scanf("%c%f",&boy1.sex,&boy1.score);boy2=boy1;printf("Number=%d\nName=%s\n",boy2.num,);printf("Sex=%c\nScore=%f\n",boy2.sex,boy2.score);}11**賦值用法總結(jié)1、普通變量可以直接賦值;2、數(shù)組用for循環(huán)逐個賦值;3、字符串用strcpy賦值;4、結(jié)構(gòu)體可以直接賦值;12**結(jié)構(gòu)體數(shù)組s[0]s[1]s[2]s[3]s[4]s[5]s[6]85897899756587趙錢孫李周武鄭如果數(shù)組的元素是結(jié)構(gòu)體類型,則可以構(gòu)成結(jié)構(gòu)體數(shù)組。stu[0]stu[1]stu[2]stu[3]stu[4]101李平M45102張?zhí)OM62103何方F92104陳玲F87105王明M5813**定義結(jié)構(gòu)體數(shù)組結(jié)構(gòu)體數(shù)組的定義方法和結(jié)構(gòu)變量相似,只需說明它為數(shù)組類型即可。例如:structstu{intnum;charname[20];charsex;floatscore;}boy[5];定義了一個結(jié)構(gòu)數(shù)組boy,共有5個元素,boy[0]~boy[4]。每個數(shù)組元素都具有structstu的結(jié)構(gòu)形式。14**結(jié)構(gòu)體數(shù)組的初始化與其他類型的數(shù)組一樣,對結(jié)構(gòu)數(shù)組可以初始化。例如:structstu{intnum;charname[20];charsex;floatscore;}boy[5]={{101,"Liping",'M',45},{102,"Zhangping",'M',62.5},{103,"Hefang",'F',92.5},{104,"Chengling",'F',87},{105,"Wangming",'M',58}}當(dāng)對全部元素作初始化賦值時,也可不給出數(shù)組長度。15**

結(jié)構(gòu)體數(shù)組應(yīng)用舉例【例4-20】已知學(xué)生成績表,計算學(xué)生的平均成績和不及格的人數(shù)。分析:若用結(jié)構(gòu)體數(shù)組來存儲學(xué)生基本信息,而成績作為每個數(shù)組元素的一個成員,則在main函數(shù)中可直接通過循環(huán)來完成題目所給的任務(wù)。16**例4-20流程圖源程序調(diào)用集成編譯環(huán)境17**例4-21【例4-21】建立同學(xué)通訊錄。分析:通訊錄里面至少包含兩方面內(nèi)容:名字和電話號碼??啥x一個結(jié)構(gòu)mem,里面有兩個成員。然后定義一個mem的結(jié)構(gòu)體數(shù)組??梢酝ㄟ^初始化的方法給數(shù)組賦初值,也可以通過輸入函數(shù)給數(shù)組賦值。18**例4-21流程圖源程序調(diào)用集成編譯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論