资源描述:
《程式设计范例及练习.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、程式設計範例及練習Class1.2副程式範例IndexExample1.2-1計算M取N階層()Example1.2-2矩陣相加Example1.2-3矩陣相乘Example1.2-4找出1到n中所有的質數Example1.2-5電費計算Example1.2-6計算平均分數,及與平均分數的分數差練習1Example1.2-7氣泡排序法Example1.2-8選擇排序法Example1.2-9插入排序法練習2Example1.2-10求
2、Xi-Yj
3、的最小值Example:1.2-11計算矩陣位置Exam
4、ple:1.2-12字串排序Example:1.2-13Stack之實作與應用Example:1.2-14Queue實作與應用Example:1.2-15利用structure建構資料及排序資料Example:1.2-16利用structure新增資料及刪除資料Example1.2-1:輸入兩個數M及N,計算M取N的值,亦即M!/(N!(M-N)!)Gotoindex/*程式功能:輸入兩個數M及N,計算M取N的值,亦即M!/(N!(M-N)!)*/#includelongintFact
5、(intI);voidmain(void){longintM,N,C;printf("輸入兩個正數值M,N,且M須大於等於N");printf("");printf("M=");scanf("%ld",&M);/*由鍵盤輸入數值*/printf("");printf("N=");scanf("%ld",&N);C=Fact(M)/(Fact(N)*Fact(M-N));/*印出總和*/printf("M取N=%ld",C);return;}longintFact(intI)/*計算整數I的階乘值
6、,即I!*/{/*注意:此函數未處理overflow的問題,也就是當I大於某個數時,*//*其計算結果不會是正確的值*/longintJ,P=1;if(I<0)return0;/*I小於0為不合理的值*/for(J=1;J<=I;J++)P=P*J;returnP;}解釋:在這以前,我們從未介紹過副程式,所謂副程式,就是在一個程式內被呼叫的一個程式,以這個例子而言,我們的副程式就是Fact,而Fact的功能在於算一個整數的階乘,因為有副程式,我們就會有主程式,主程式永遠叫做main,然而副程式的名字我們
7、可以任意取,但是必須要事先宣告,假如甲程式會呼叫一個乙副程式,我們建議你在甲程式的前面先宣告乙副程式. 以我們這個例子而言,我們只有一個副程式,這個副程式就是Fact,而以下是有關於Fact的宣告:longintFact(intI);Fact前面的longint表明這個副程式的輸出是一個很長的整數,至於intI是指Fact的輸入是I,而且必須是一個整數. 在C語言程式中,是只可以有一個輸出的,如果你想輸出一個以上的結果,你就必須用一個陣列(array)來儲存這些輸出的結果,以後我們會用例子來解釋這些
8、的.GotoindexExample1.2-2矩陣相加輸入:3×3矩陣A和B輸出:矩陣Gotoindex/*程式功能:矩陣相加*//*輸入:3×3矩陣A和B*//*輸出:矩陣*//*說明:請事先準備兩個輸入檔Amatrix.txt和Bmatrix.txt*//*Amatrix.txt為一3×3矩陣,Bmatrix.txt亦為一3×3矩陣*/#includevoidReadFile(FILE*fp,intMatrix[][4]);voidmain(){FILE*fp1,*fp2;intA
9、[4][4],B[4][4],C[4][4];inti,j;fp1=fopen("AMatrix.txt","r");fp2=fopen("BMatrix.txt","r");ReadFile(fp1,A);/*讀檔案內的矩陣到陣列A*/ReadFile(fp2,B);/*讀檔案內的矩陣到陣列B*/for(i=1;i<=3;i++){for(j=1;j<=3;j++){C[i][j]=A[i][j]+B[i][j];/*兩矩陣相加*/printf("%d",C[i][j]);/*輸出相加後的矩陣*/}p
10、rintf("");}}/*讀檔案內的矩陣到陣列*/voidReadFile(FILE*fp,intMatrix[][4]){inti,j;for(i=1;i<=3;i++){for(j=1;j<=3;j++){fscanf(fp,"%d",&Matrix[i][j]);}}/*endfor*/fclose(fp);}GotoindexExample1.2-3矩陣相乘輸入:3×2矩陣A,2×2矩陣B輸出:3×2矩陣Gotoindex/*