實驗四-數(shù)組程序設(shè)計_第1頁
實驗四-數(shù)組程序設(shè)計_第2頁
實驗四-數(shù)組程序設(shè)計_第3頁
實驗四-數(shù)組程序設(shè)計_第4頁
實驗四-數(shù)組程序設(shè)計_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗報告四課程C語言程序設(shè)計實驗工程數(shù)組程序設(shè)計成績專業(yè)班級學(xué)號批閱日期姓名實驗日期指導(dǎo)教師2.1實驗學(xué)時:4學(xué)時2.2實驗?zāi)康?.掌握一維數(shù)組、二維數(shù)組的概念及元素的各種表示方法;2.正確掌握數(shù)組輸入輸出等的根本操作;3.掌握函數(shù)訪問數(shù)組的方法;4.字符串的處理方法;5.掌握數(shù)組中的一些常用算法,并能解決實際問題。2.3必做實驗【題目4-1】運用所學(xué)數(shù)組知識實現(xiàn)學(xué)生成績的錄入、評估、統(tǒng)計、排序及輸出,要求如下:〔1〕從鍵盤輸入6個同學(xué)計算機課程期末考試成績存放在數(shù)組中算法分析:1、定義一個能夠存放6個整型數(shù)據(jù)的數(shù)組intscore[6];2、使用循環(huán)結(jié)構(gòu)為數(shù)組元素賦值3、編寫循環(huán)體,注意數(shù)據(jù)輸入格式〔2〕統(tǒng)計出平均分、最高分,以及統(tǒng)計超過平均分的人數(shù)算法分析:1、分析編程所需定義的變量,并未變量賦初值:總分intsum=0,平均分intave=0,最高分intmax=0,以及超過平均分人數(shù)的變量intcount=02、使用循環(huán)結(jié)構(gòu)訪問數(shù)組元素:score[0]~score[5]3、在訪問數(shù)組元素的過程中,完成總分、最高分的統(tǒng)計,在訪問完所有數(shù)組數(shù)據(jù)后,計算平均分4、再次訪問數(shù)組,參照計算所得平均成績統(tǒng)計超過平均分的人數(shù)5、輸出結(jié)果〔3〕對學(xué)生成績進行從高到低的排序〔冒泡法〕,并把排序后的成績輸出。算法分析:冒泡法實現(xiàn)n個數(shù)據(jù)從小到大排序,結(jié)合算法對學(xué)生成績進行從高到低的排序輸出排序結(jié)果流程框圖:確定內(nèi)部循環(huán)次數(shù)確定外部循環(huán)次數(shù)判定數(shù)據(jù)是否需要交換確定內(nèi)部循環(huán)次數(shù)確定外部循環(huán)次數(shù)判定數(shù)據(jù)是否需要交換【題目4-2】定義一個N行N列的二維整型數(shù)組,使數(shù)組左下三角元素中的值乘以n。例如:假設(shè)n的值為3,a數(shù)組中的值為那么返回主程序后a數(shù)組中的值為算法分析:1、定義N行N列的二維數(shù)組,并手動為數(shù)組元素賦值 注意:注意數(shù)組維數(shù)不能為變量,但可以用宏定義的方式來進行數(shù)組維數(shù)的定義,例如:在頭文件前進行宏定義#defineN3,程序中定義二維數(shù)組intnum[N][N];2、選擇二維數(shù)組中的左下三角元素,并改變?nèi)窃氐闹?、以N行N列的形式輸出二維數(shù)組,要求每輸出N個數(shù)據(jù),輸出一個回車換行符延伸:結(jié)合所學(xué)函數(shù)的知識,把改變左下三角元素值的功能用函數(shù)實現(xiàn)。【題目4-3】掌握字符串操作,完成以下功能〔1〕輸入一串字符s,把s所指字符串中的內(nèi)容逆置。例如:字符串中原有的字符串為:abcdefg,那么執(zhí)行后,串s中的內(nèi)容為:gfedcba。算法分析:鍵盤輸入字符串字符串輸入可使用多種方法,例如:gets〔〕函數(shù),或者scanf〔〞%s〞,s〕;等;逆置字符串內(nèi)容字符串內(nèi)容逆置也就是首字符和尾字符交換,交換次數(shù)取決于字符串的長度;長度為n的字符串需要交換n/2次便可完成逆置;獲得字符串長度可使用strlen()函數(shù);輸出逆置后字符串可使用puts()函數(shù),或者printf(“%s〞,s);〔2〕將s所指字符串中下標(biāo)為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。例如,當(dāng)s所指字符串中的內(nèi)容為:"ABCDEFGHIJK",在t所指數(shù)組中的內(nèi)容應(yīng)是:"BDFHJ"。算法分析:輸入字符串定義存放新字符串的變量t,字符串長度至少為s長度的一半;把字符串s對應(yīng)位置上的字符賦值給變量t運用循環(huán)結(jié)構(gòu)為字符串t賦值,考慮t數(shù)組的下標(biāo)應(yīng)從0開始,到s長度的一半〔可通過調(diào)用strlen函數(shù)獲取字符串s的長度〕;輸出字符串t延伸:把以上兩個功能寫成函數(shù),在主函數(shù)中調(diào)用函數(shù)。2.5實驗結(jié)果【實驗4-1】代碼及運行結(jié)果:〔1〕#include<stdio.h>main(){ inti,score[6]; intsum=0,ave=0,max=0,count=0; for(i=0;i<=5;i++) { printf("請輸入第%d個學(xué)生的成績:",score[6]); scanf("%d",&score[i]); } for(i=0;i<=5;i++) { sum+=score[i]; if(max<score[i]) max=score[i]; } ave=sum/6; printf("最高分是%d,平均分是%d",max,ave); for(i=0;i<=5;i++) { if(score[i]>=ave) count++; } printf("超過平均分共%d人",count);}【實驗4-2】代碼及運行結(jié)果:#include<stdio.h>#defineN3voidchange(inta[N][N]){ inti,j; for(i=0;i<N;i++) { for(j=0;j<=i;j++) a[i][j]*=3; }}main(){ intnum[N][N];inti,j; for(i=0;i<N;i++) { for(j=0;j<N;j++) scanf("%d",&num[i][j]); } for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%d\t",num[i][j]); printf("\n"); } printf("\n\n");change(num);for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%d\t",num[i][j]); printf("\n"); }}【實驗4-3】代碼及運行結(jié)果:〔1〕#include<stdio.h>#include<string.h>#defineN80voidmain(){charstr[N]; inti,n;chartemp; gets(str); n=strlen(str);for(i=0;i<=n/2;i++) { temp=str[i]; str[i]=str[n-1-i]; str[n-1-i]=temp; } printf("Theresultis%s\n",str);}/*改為函數(shù)后為*/#include<stdio.h>#include<string.h>#defineN80voidfun(charstr[]){ inti,n=strlen(str); chartemp; for(i=0;i<=n/2;i++) { temp=str[i]; str[i]=str[n-1-i]; str[n-1-i]=temp; }}voidmain(){ charstr[N]; gets(str); fun(str); printf("Theresultis%s",str);}〔2〕#include<stdio.h>#include<string.h>#define N100voidmain(){ charstr[N],t[100]; inti,n; gets(str); n=strlen(str); for(i=0;i<=n/2;i++) { t[i]=str[i*2+1]; } t[i]=0; puts(t);}/*改用函數(shù)后為*/#include<stdio.h>#include<string.h>#define N100voidfu

溫馨提示

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

評論

0/150

提交評論