C第五次課內(nèi)實驗報告_第1頁
C第五次課內(nèi)實驗報告_第2頁
C第五次課內(nèi)實驗報告_第3頁
C第五次課內(nèi)實驗報告_第4頁
C第五次課內(nèi)實驗報告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《C語言》實驗報告PAGE7-學(xué)生姓名及學(xué)號學(xué)院:理學(xué)院班級:課程名稱:C語言實驗題目:函數(shù)的應(yīng)用指導(dǎo)教師姓名及職稱:李鵬松教授方向?qū)嶒瀻焺⒘嶒瀻熞?、實驗題目:函數(shù)的應(yīng)用二、實驗?zāi)康模?.進一步掌握函數(shù)的定義方法、調(diào)用方法,實參與形參的對應(yīng)關(guān)系,以及調(diào)用函數(shù)的執(zhí)行過程。2.掌握函數(shù)的嵌套調(diào)用、遞歸調(diào)用、數(shù)組作為函數(shù)參數(shù)的設(shè)計方法。3.進一步理解變量的作用域和生存期。三、實驗內(nèi)容:1.定義一個求階乘的遞歸調(diào)用函數(shù)doublefac(intn),在主函數(shù)中調(diào)用3次該函數(shù)分別求出8!、10!、18!的準確值(結(jié)果:8!=40320,10!=3628800,18!=6402373705728000)。編寫源程序,給出注釋及運行結(jié)果。(提示,請參閱教材上174頁例8.7的程序)。2.編寫一個將n個整數(shù)用選擇法按由小到大的順序排序的函數(shù)voidsort(intarray[],intn),在主函數(shù)中調(diào)用兩次該函數(shù),對任給出個數(shù)分別是10和15的兩組整數(shù)進行排序。編寫源程序,給出注釋及運行結(jié)果。(提示,請參閱教材上181頁例8.13的程序)。3.編寫一個求3個學(xué)生的各科平均成績的程序,每個學(xué)生有4科成績,學(xué)生成績存放在a數(shù)組中,求平均成績需調(diào)用函數(shù)voidaver(floatarray[][4],intn),n為學(xué)生數(shù),其中a數(shù)組的矩陣表示為。編寫源程序,給出注釋及運行結(jié)果,自己試著增加學(xué)生數(shù)或者成績科數(shù)再運行程序。(提示,可參閱教材183頁例8.14的程序,注意按科平均成績可存入數(shù)組A中,只需將A增加1行并先付初值0,求出平均值之后替換0)四、實驗結(jié)果:1.#include<stdio.h>/*標準輸入輸出函數(shù)庫*/voidmain()/*定義主函數(shù)為空類型*/{floatfac(intn);/*對fac進行聲明*/inta,b,c;/*定義a,b,c為基本整型數(shù)據(jù)*/floatx,y,z;/*定義x,y,z為浮點型數(shù)據(jù)*/printf("inputthreeintergernumbers:\n");/*提示用戶輸入三個整數(shù)*/scanf("%d%d%d",&a,&b,&c);/*把輸入的三個整數(shù)依次存放到變量a,b,c中*/x=fac(a);/*求a的階乘,并賦給x*/y=fac(b);/*求b的階乘,并賦給y*/z=fac(c);/*求c的階乘,并賦給z*/printf("%d!=%10.0f\n",a,x);/*輸出a中的數(shù)值等于這個整數(shù)對應(yīng)的階乘結(jié)果*/printf("%d!=%10.0f\n",b,y);/*輸出b中的數(shù)值等于這個整數(shù)對應(yīng)的階乘結(jié)果*/printf("%d!=%10.0f\n",c,z);/*輸出c中的數(shù)值等于這個整數(shù)對應(yīng)的階乘結(jié)果*/}floatfac(intn)/*定義函數(shù)fac為浮點型,定義形參類型為基本整型*/{floatf;/*定義變量f為浮點型數(shù)據(jù)*/if(n<0)/*如果n中的數(shù)值小于0*/{printf("n<0,dataerror!");/*輸出n<0,dataerror!*/}else/*否則*/if(n==0||n==1)/*如果n為0,或n為1*/f=1;/*把1付給f*/else/*否則*/f=fac(n-1)*n;/*計算n的階乘,把結(jié)果賦給f*/return(f);/*把f中的數(shù)值帶回到主函數(shù)中*/}2.#include<stdio.h>/*標準輸入輸出函數(shù)庫*/voidmain()/*定義主函數(shù)為空類型*/{ voidsort(intarray[],intn);/*對sort函數(shù)進行聲明*/ intb[15],j,m,n=0; printf("Howmanynumbersyouwillinput:");/*詢問用戶要輸入多少個數(shù)字*/ scanf("%d",&m);/*把輸入的數(shù)儲存在m中*/ printf("enterthearray\n");/*提示用戶輸入數(shù)字,以下來比較大小*/if(m==15)/*如果m中存儲的數(shù)值等于15*/ {for(j=0;j<15;j++)/*把0賦給j,如果j小于15,執(zhí)行下面的內(nèi)嵌語句,然后給j自加,一直進行這個循環(huán),直到,j中的數(shù)值大于等于15*/ scanf("%d",&b[j]);/*把輸入的數(shù)一次存放在一維數(shù)組b[15]中*/ sort(b,15);/*對剛才輸入的十五個數(shù)字進行排序*/printf("thesortedarray:\n");/*輸出thesortedarray:,并使光標跳到下一行*/ for(j=0;j<15;j++)/*把0賦給j,如果j小于15,執(zhí)行下面的內(nèi)嵌語句,然后給j自加,一直進行這個循環(huán),直到,j中的數(shù)值大于等于15*/ { printf("%5d",b[j]);/*按照從小到大的順序依次輸出剛才輸入的十五個數(shù)字*/ n=n+1;/*使n中的數(shù)值加1,并將結(jié)果賦給n*/ if(n%5==0)/*如果,n除以5的余數(shù)為零*/ printf("\n");/*使光標跳到下一行的開始*/ } }if(m==10)/*如果m中的數(shù)值為10*/ {for(j=0;j<10;j++)/*把0賦給j,如果j小于10,執(zhí)行下面的內(nèi)嵌語句,然后給j自加,一直進行這個循環(huán),直到,j中的數(shù)值大于等于10*/ scanf("%d",&b[j]);/*把輸入的數(shù)一次存放在一維數(shù)組b[10]中*/ sort(b,10);/*對剛才輸入的十個數(shù)字進行排序*/printf("thesortedarray:\n");/*輸出thesortedarray:,并使光標跳到下一行*/ for(j=0;j<10;j++)/*把0賦給j,如果j小于10,執(zhí)行下面的內(nèi)嵌語句,然后給j自加,一直進行這個循環(huán),直到,j中的數(shù)值大于等于10*/ { printf("%5d",b[j]);/*按照從小到大的順序依次輸出剛才輸入的十個數(shù)字*/ n=n+1;/*使n中的數(shù)值加1,并將結(jié)果賦給n*/ if(n%5==0)/*如果,n除以5的余數(shù)為零*/ printf("\n");/*使光標跳到下一行的開始*/ }} }voidsort(intarray[],intn)/*定義函數(shù)sort為空,定義這個函數(shù)的形式參數(shù),一個是整型的一維數(shù)組,一個是整型變量*/{ inti,j,k,t;/*定義i,j,k,t為基本整型數(shù)據(jù)*/ for(i=0;i<n-1;i++)/*把o賦給i,如果i小于n-1,就執(zhí)行下面的內(nèi)嵌語句,然后,i自加1,一直進行這個循環(huán),直到i大于等于n-1*/ { k=i;/*把i中的數(shù)值賦給k*/ for(j=i+1;j<n;j++)/*把i+1賦給j,如果j<n,執(zhí)行下面的內(nèi)嵌語句,j自加,一直進行這個循環(huán),直到j(luò)大于等于n*/ if(array[j]<array[k])/*如果一維數(shù)組array的第j+1個數(shù)字小于array第k+1個數(shù)字*/ k=j;/*把j中的數(shù)值賦給k*/ t=array[k];/*把一維數(shù)組array的第k+1個數(shù)字賦給t*/ array[k]=array[i];/*把一維數(shù)組array的第i+1個數(shù)字賦給array的第k+1個數(shù)字*/ array[i]=t;/*把t中的數(shù)值存放到一維數(shù)組array的第i+1個位置,并覆蓋原來的數(shù)值*/ }}3.#include<stdio.h>/*包含標準輸入輸出函數(shù)庫*/voidaver(floatarray[][4],intn)/*定義函數(shù)aver為空類型,定義形式參數(shù):數(shù)組array為二維的數(shù)組,里面包含的均是浮點型數(shù)據(jù),定義變量n為基本整型*/{ inti,j;/*定義變量i,j為基本整型數(shù)據(jù)*/ floats;/*定義s為浮點型數(shù)據(jù)*/ printf("theresultis:\n");/*輸出theresultis:,并使光標跳到下一行*/ for(j=0;j<4;j++)/*把0賦給j,如果j小于4,就執(zhí)行下面的內(nèi)嵌語句,j自加1,一直進行這個循環(huán),直到j(luò)大于等于4*/ { s=0;/*把0賦給s*/ for(i=0;i<n;i++)/*把0賦給i,如果i小于n,就執(zhí)行下面的內(nèi)嵌語句,i自加1,一直進行這個循環(huán),直到i大于等于n*/s=s+array[i][j];/*把某一列上的全部元素累加*/ printf("%f\n",s/n);/*用s除以n,并以浮點型數(shù)據(jù)輸出*/ }}voidmain()/*定義主函數(shù)為空類型*/{ intn,i,j;/*定義變量n,i,j為基本整型數(shù)據(jù)*/ floata[100][4];/*應(yīng)以二維數(shù)組a為浮點型*/ printf("Howmanysubjectsofeverystudentswillyouinput:");/*輸出Howmanysubjectsofeverystudentswillyouinput:*/ scanf("%d",&n);/*把輸入的數(shù)值存放在變量n中*/ printf("a:");/*輸出a:*/ for(i=0;i<n;i++)

溫馨提示

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

評論

0/150

提交評論