freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

結(jié)構(gòu)體、共用體與枚舉-資料下載頁

2025-05-13 22:09本頁面
  

【正文】 9}, {1004,han,78,87,79}, {1005,qian,69,79,81}}。 int i,j。 for(i=0。i5。i++) {st[i].evr=0。 for(j=0。j3。j++) st[i].evr+=st[i].score[j]。 st[i].evr/=3。 } for(i=0。i4。i++) for(j=i+1。j5。j++) if(st[i].evrst[j].evr){t=st[i]。st[i]=st[j]。st[j]=t。} printf(No. Name scor1 scor2 score3 evr\n)。 for(i=0。i5。i++) { printf(%ld%8s,st[i].num,st[i].name)。 for(j=0。j3。j++)printf(%8d,st[i].score[j])。 printf(%\n,st[i].evr)。 } } 【 例 923】 【 例 924】 有 5個學(xué)生 , 每個學(xué)生的信息有學(xué)號 、 姓名和三門課的成績 , 輸出三門課的總平均分以及所有成績中最高成績所對應(yīng)學(xué)生的全部信息 。 【 分析 】 三門課的總平均分可以定義一個數(shù)組 ,找出最高成績時應(yīng)記錄是哪個學(xué)生才能輸出該學(xué)生的全部信息 , 編程如下: main() { struct student { long num。 char name[10]。 int score[3]。 }st[5]={{1001,wang,67,75,88},{1002,li,83,92,95}, {1003,zhao,56,82,79},{1004,han,78,87,79}, {1005,qian,69,79,81}}。 int i,j,max,maxi。 float aver[3]={0}。 for(j=0。j3。j++) { for(i=0。i5。i++) aver[j]+=st[i].score[j]。 aver[j]/=5。 } 【 例 924】 【 例 924】 max=st[0].score[0]。 for(i=0。i5。i++) for(j=0。j3。j++) if(st[i].score[j]max){max=st[i].score[j]。maxi=i。} printf(The averages of courses are:\n)。 for(i=0。i3。i++) printf(%,aver[i])。 printf(\n)。 printf(The informations of the student with maximal score:\n)。 printf(No. Name scor1 scor2 score3\n)。 printf(%ld%8s,st[maxi].num,st[maxi].name)。 for(j=0。j3。j++)printf(%8d,st[maxi].score[j])。 printf(\n)。 } 【 例 925】 已知單向鏈表的結(jié)點(diǎn)類型為 struct node,頭指針為 head,編寫一個釋放鏈表的函數(shù)。 【 分析 】 鏈表由頭指針代表,要釋放鏈表可以定義一個工作指針得到頭指針,然后頭指針和工作指針均不斷下移,同時釋放結(jié)點(diǎn),編寫函數(shù)如下: /* */ void fun(struct node *head) { struct node *p。 while(head!=NULL) {p=head。 head=headnext。 free(p)。 } } 【 例 926】 已知函數(shù) bioskey(0)返回用戶按鍵對應(yīng)的一個 16位二進(jìn)制數(shù) , 其中若是控制鍵 ( 含移動光標(biāo) 、 組合控制鍵等 ) 則高 8位是該鍵的掃描碼 , 低 8位是 0;若是可見字符 ( 含空格 ) 則低 8位是字符的 ASCII碼 。 利用共用體編程獲得用戶按鍵的 ASCII碼或掃描碼 。 include main() { union {int a。 char c[2]。 }key。 do { printf(Please prees a key:)。 =bioskey(0)。printf(%c\n,)。 if([0]==0) printf(The scanning code of the key is:%d\n,[1])。 else printf(The ASCII of the character is:%d\n,[0])。 }while([0]!=39。q39。)。 } 【 例 926】 【 例 927】 口袋中有紅、黃、綠、藍(lán)顏色的球各一些,現(xiàn)從口袋中每次摸出 3個球,要求顏色均不同,考慮摸出的順序,輸出所有可能的取法的排列及取法的數(shù)量。 main() { enum color{red,yellow,green,blue}c,x,y,z。 int i,n=0。 for(x=red。x=blue。x++) for(y=red。y=blue。y++) if(x!=y) /* 避開 x=y的情況 , 提高了效率 */ for(z=red。z=blue。z++) if(z!=x amp。amp。 z!=y) /* x、 y、 z均不相同 */ {n++。printf(%5d,n)。 /* 打印序號 */ for(i=1。i=3。i++) /* 輪流對 x、 y、 z打印顏色 */ {switch(i) {case 1:c=x。break。 case 2:c=y。break。 case 3:c=z。 } 【 例 927】 switch(c) {case red :printf(“%8s”,“red”)。break。 case yellow:printf(“%8s”,“yellow”)。break。 case green :printf(“%8s”,“green”)。break。 case blue :printf(“%8s”,“blue”)。 } } if (n%2==0) printf(“\n”)。 } printf(“n=%d\n”,n)。 } 本章小結(jié) 本章學(xué)習(xí)了 C語言的用戶定義類型 , 包括結(jié)構(gòu)體 、 共用體和枚舉類型三種 , 其中結(jié)構(gòu)體和共用體是構(gòu)造類型 , 枚舉類型是基本數(shù)據(jù)類型 , 重點(diǎn)學(xué)習(xí)了結(jié)構(gòu)體類型 。 本章還學(xué)習(xí)了用戶定義類型名的方法 。 現(xiàn)小結(jié)如下 。 1. 結(jié)構(gòu)體與共用體有很多相似的地方: (1)類型定義的形式相同 。 通過定義類型說明了結(jié)構(gòu)體或共用體所包含的不同數(shù)據(jù)類型的的成員項 , 同時確定了結(jié)構(gòu)體或共用體類型的名稱 。 (2)變量說明的方法相同。都有三種方法說明變量,第一種方法是先定義類型,再說明變量;第二種方法是在定義類型的同時說明變量;第三種方法是利用結(jié)構(gòu)直接說明變量。數(shù)組、指針等可與變量同時說明。 本章小結(jié) (3)結(jié)構(gòu)體與共用體的引用方式相同 。 除了同類型的變量之間可賦值外 , 均不能對變量整體賦常數(shù)值 、 輸入 、 輸出和運(yùn)算等 , 都只能通過引用其成員項進(jìn)行 , 嵌套結(jié)構(gòu)只能引用其基本成員 , 如: 變量 .成員 或 變量 .成員 .成員 … 基本成員 。 結(jié)構(gòu)體或共用體的 ( 基本 ) 成員是基本數(shù)據(jù)類型的 , 可作為簡單變量使用 , 是數(shù)組的可當(dāng)作一般數(shù)組使用 。 (4)無論結(jié)構(gòu)體還是共用體其應(yīng)用的步驟是基本相同的 ,都要經(jīng)過三個過程: ① 定義類型 。 ② 用定義的類型說明變量 , 說明后編譯系統(tǒng)會為其開辟內(nèi)存單元存放具體的數(shù)據(jù)。 ③ 引用結(jié)構(gòu)體或共用體的成員 。 2. 了解結(jié)構(gòu)體與共用體的區(qū)別非常重要,他們的主要區(qū)別有: (1)在結(jié)構(gòu)體變量中,各成員均擁有自己的內(nèi)存空間,它們是同時存在的,一個結(jié)構(gòu)變量的總長度等于所有成員項長度之和;在共用體變量中,所有成員只能先后占用該共用體變量的內(nèi)存空間,它們不能同時存在,一個共用體變量的長度等于最長的成員項的長度。這是結(jié)構(gòu)體與共用體的本質(zhì)區(qū)別。 本章小結(jié) (2)在說明結(jié)構(gòu)體變量或數(shù)組時可以對變量或數(shù)組元素的所有成員賦初值 , 由于共用體變量同時只能存儲一個成員 , 因此只能對一個成員賦初值 。 對共用體變量的多個成員賦值則逐次覆蓋 , 只有最后一個成員有值 。 3. 定義結(jié)構(gòu)體與共用體類型時可相互嵌套 。 4. 對于結(jié)構(gòu)體類型 , 如果其中的一個成員項是一個指向自身結(jié)構(gòu)的指針 , 則該類型可以用作鏈表的結(jié)點(diǎn)類型 。實用的鏈表結(jié)點(diǎn)必須是動態(tài)存儲分配的 , 即在函數(shù)的執(zhí)行部分通過動態(tài)存儲分配函數(shù)開辟的存儲單元 。 鏈表的操作有建立 、 輸出鏈表 , 插入 、 刪除結(jié)點(diǎn)等 。 本章小結(jié) 本章小結(jié) 5. 枚舉類型的數(shù)據(jù)就是用戶定義的一組標(biāo)識符(枚舉常量)的序列,其存儲的是整型數(shù)值,因此枚舉類型是基本數(shù)據(jù)類型。由于枚舉常量對應(yīng)整數(shù)值,因此枚舉類型數(shù)據(jù)與整數(shù)之間可以比較大小,枚舉變量還可以進(jìn)行 ++、 等運(yùn)算。枚舉類型不能直接輸入輸出,只能通過賦值取得枚舉常量值,輸出也只能間接進(jìn)行,如例 927。 6. 用戶可以通過 typedef給系統(tǒng)數(shù)據(jù)類型以及構(gòu)造類型重新命名,注意這并沒有定義新的類型。其中定義替代類型名的作用是:給已有的類型起個別名標(biāo)識符;而定義構(gòu)造類型名的作用是:自己定義(一般是簡化)新“構(gòu)造”類型名標(biāo)識符 結(jié)束 結(jié)束
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1