數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn) 線性表的應(yīng)用_第1頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn) 線性表的應(yīng)用_第2頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn) 線性表的應(yīng)用_第3頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn) 線性表的應(yīng)用_第4頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn) 線性表的應(yīng)用_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

課程題目:數(shù)據(jù)結(jié)構(gòu)試驗(yàn)學(xué)院:班級:姓名:學(xué)號:實(shí)驗(yàn)題目:線性表的應(yīng)用實(shí)驗(yàn)內(nèi)容:分?jǐn)?shù)統(tǒng)計(jì)實(shí)驗(yàn)?zāi)康模赫莆站€性表的概念及原理,運(yùn)用線性表的原理完成實(shí)驗(yàn)題目中的內(nèi)容。實(shí)驗(yàn)要求:為了使學(xué)生更好的掌握與理解課堂上老師所講的概念與原理,實(shí)驗(yàn)前每個(gè)學(xué)生要認(rèn)真預(yù)習(xí)所做的實(shí)驗(yàn)內(nèi)容及編寫源程序代碼(寫在紙上與盤中均可),以便在實(shí)驗(yàn)課中完成老師所布置的實(shí)驗(yàn)內(nèi)容。實(shí)驗(yàn)學(xué)時(shí):4學(xué)時(shí)設(shè)計(jì)原理:本實(shí)驗(yàn)的核心部分為對學(xué)生成績從兩個(gè)角度進(jìn)行分析,既對學(xué)生的成績進(jìn)行了排名、求出學(xué)生成績的平均分和分出學(xué)生成績的數(shù)值段。為了處理學(xué)生成績這些數(shù)據(jù),首先必須建立一個(gè)新的線性表,新表為空,然后經(jīng)由input函數(shù)程序的執(zhí)行使得學(xué)生的成績可以輸入到計(jì)算機(jī)中,從鍵盤輸入程序所提示的學(xué)生人數(shù)后,新線性表的長度得以確定,再通過循環(huán)命令語句的調(diào)用將全部學(xué)生的成績輸入。輸入后,調(diào)用output函數(shù)處理線性表中的數(shù)據(jù),通過調(diào)用條件語句和設(shè)置變量存儲次次數(shù)的累加,從而在屏幕上輸出各個(gè)分?jǐn)?shù)段的人數(shù)。這之后,通過冒泡排序法處理學(xué)生成績這些數(shù)據(jù),得出結(jié)果后,在調(diào)用循環(huán)語句命令將結(jié)果按順序輸出。然后再對這些數(shù)據(jù)進(jìn)行求平均值的運(yùn)算,處理后輸出。詳細(xì)程序清單及注釋說明:#include<stdio.h>#include<malloc.h>#definelist_init_size100#definelistincrement10typedefstruct { int*elem;//存儲空間基址 intlength;//當(dāng)前長度 intlistsize;//當(dāng)前分配的存儲空間(以sizeof(ElemType)為單位)}sqlist;voidinitlist_sq(sqlist&l) //創(chuàng)建一個(gè)空的線性表{ l.elem=(int*)malloc(list_init_size*sizeof(int)); l.length=0;//空表長度為0 l.listsize=list_init_size;//初始存儲容量}voidinput(sqlist&l) {//輸入學(xué)生的總?cè)藬?shù)和每個(gè)人的成績 inta,b,c;loop1:printf("輸入學(xué)生人數(shù):"); scanf("%d",&b); if(b<=0) { printf("輸入錯誤,請重新輸入!!\n"); gotoloop1; //輸入錯誤時(shí),重新輸入 } printf("\n"); l.length=l.length+b; //由輸入的值確定線性表的長度 for(a=0;a<b;a++){loop:printf("輸入第%d名學(xué)生的成績:",a+1);scanf("%d",&c); l.elem[a]=c; if(c<0||c>100) { printf("輸入錯誤,請重新輸入?。n"); gotoloop; //輸入錯誤時(shí),重新輸入 } }}voidoutput(sqlist&l) {//輸出學(xué)生的成績信息 printf("\n"); inti,a=0,q=0,w=0,e=0,r=0,t=0,y=0; for(i=0;i<l.length;i++) { a=l.elem[i]/10; switch(a) //對成績分段 { case10:q++;break; case9:w++;break; case8:e++;break; case7:r++;break; case6:t++;break; default:y++;break; } } printf("成績?yōu)?00有%d人\n",q); printf("成績?yōu)?0~99有%d人\n",w); printf("成績?yōu)?0~89有%d人\n",e); printf("成績?yōu)?0~79有%d人\n",r); printf("成績?yōu)?0~69有%d人\n",t); printf("不及格的有%d人\n\n",y);}voidorder(sqlist&l) {//對成績進(jìn)行排序 inti,j,k;for(i=0;i<l.length;i++) for(j=0;j<l.length-i;j++) if(l.elem[j]<l.elem[j+1]) { k=l.elem[j]; l.elem[j]=l.elem[j+1]; l.elem[j+1]=k; } printf("經(jīng)過排序:\n"); for(i=0;i<l.length;i++) { printf("第%d名成績?yōu)?%d\n",i+1,l.elem[i]); }}voidaverage(sqlist&l) {//求出平均成績 inti; floatk=0,j=0; for(i=0;i<l.length;i++) { j=j+l.elem[i]; } k=j/l.length; printf("平均分為:%5.5f\n",k);}voidmain(){ printf("分?jǐn)?shù)統(tǒng)計(jì)\n\n"); sqlistl; initlist_sq(l); input(l); output(l); order(l); average(l);}運(yùn)行與測試及結(jié)果:在輸入錯誤情況下:試驗(yàn)中所遇到的問題及解決辦法:=1\*GB3①、實(shí)驗(yàn)當(dāng)中曾經(jīng)出現(xiàn)數(shù)據(jù)結(jié)果為亂碼的現(xiàn)象,后經(jīng)查找,原因是兩個(gè)for循環(huán)當(dāng)中的變量i,j順序顛倒,從而出現(xiàn)了指針沒有指向相應(yīng)的數(shù)據(jù)結(jié)果,而是指向了未知位置的數(shù)據(jù)。在i,j順序調(diào)整好之后,程序恢復(fù)正常。=2\*GB3②、輸入的數(shù)據(jù)在排序過程中出現(xiàn)了錯誤,導(dǎo)致了數(shù)據(jù)是以亂序的形式輸出的,查找后,原因是排列數(shù)據(jù)的算法出現(xiàn)錯誤,導(dǎo)致系統(tǒng)無法正確的進(jìn)行排序。算法改正后,程序恢復(fù)正常。=3\*GB3③、求平均數(shù)時(shí),程序顯示亂碼,經(jīng)查找,在計(jì)算的分?jǐn)?shù)總和的循環(huán)求和算法中將

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論