C語言程序設(shè)計-函數(shù)-實驗報告_第1頁
C語言程序設(shè)計-函數(shù)-實驗報告_第2頁
C語言程序設(shè)計-函數(shù)-實驗報告_第3頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第第11頁共10頁實驗報告專軟件工程班X班學_XXXXXXXXXXX_姓 實驗日期:201X年X月X日 報告退發(fā)訂正、重做 課C程序設(shè)計實驗實驗名函 數(shù) 一、實驗?zāi)康蘑偈炀氄莆誄程序中函數(shù)的定義;②掌握函數(shù)的調(diào)用,函數(shù)參數(shù)的傳遞;③熟練掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用;二、實驗環(huán)境(描述實驗的軟件、硬件環(huán)境)①軟件環(huán)境:windowsxp/win7等操作系統(tǒng),MicrosoftVisualC++6.0編譯器;②硬件環(huán)境:PC機一臺三、實驗內(nèi)容、步驟和結(jié)果分析題目一題目一要求:main函數(shù)中調(diào)用該函數(shù)對輸入的數(shù)值進行判斷,并輸出判斷結(jié)果;<=1時,停止輸入和判斷。#include<stdio.h>#include<math.h>/*=======判斷質(zhì)數(shù)(素數(shù))的函數(shù)=======*/intjudgePrime(intn){for(inti=2;i<=sqrt(n);i++)//一個數(shù)n如果是合數(shù),那么它的所有的因子不超過n的開方{if(n%i==0)return0;elsecontinue;}return1;}/*=======判斷質(zhì)數(shù)(素數(shù))的函數(shù)=======*/intmain(){printf("\n提示:輸入一個數(shù)字來判斷是否是質(zhì)數(shù)(素數(shù),當輸入數(shù)值<=1時,停止輸入和判斷。for(intnum=2,temp;num>1;){printf("Pleaseenteranumber:");scanf("%d",&num);if(num<=1)break;//當輸入數(shù)值<=1時,停止輸入和判斷temp=judgePrime(num);if(temp==0)printf("%disnotaprimenumner!\n\n",num);elseprintf("%disaprimenumner!\n\n",num);}return0;題目二題目二:使用習題1中所編寫的判斷質(zhì)數(shù)的函數(shù)驗證哥德巴赫(Goldbach)的1+1猜想 任何一個>=6的偶數(shù)都可以表示成兩個素數(shù)之和要求:①屏幕提示用戶一個>=6的偶數(shù);②2個素數(shù)之和的表達式;③當輸入數(shù)據(jù)<6或者不是偶數(shù)時,停止輸入和驗證。#include<stdio.h>#include<math.h>/*=======判斷質(zhì)數(shù)(素數(shù))的函數(shù)=======*/intjudgePrime(intn){for(inti=2;i<=sqrt(n);i++)//一個數(shù)n如果是合數(shù),那么它的所有的因子不超過n的開方{if(n%i==0)return0;elsecontinue;}return1;//true-->1,false-->0}/*=======驗證哥德巴赫猜想的函數(shù)(調(diào)用judgePrime)=======*/intproveGoldbach(intm){if(m<6||m%2!=0)return0;//判斷是否大于等于6或者不是偶數(shù)for(intj=2;j<(m/2);j++){if(judgePrime(j)==1&&judgePrime(m-j)==1)//判斷兩數(shù)是否都等于質(zhì)數(shù){printf("\t%d=%d+%d\n",m,j,m-j);}}}intmain(){printf("\n提示:輸入一個偶數(shù)來驗證哥德巴赫猜想,當輸入數(shù)值<6時,停止輸入和判斷。\n\n");for(intnum=6;num>=6;){inttemp;printf("Pleaseenteranumber:");scanf("%d",&num);temp=proveGoldbach(num);if(temp==0)//當輸入小于6或者不是偶數(shù)時結(jié)束return0;printf("================================================================================");}}題目三:編寫一個求階乘的函數(shù),接著調(diào)用該函數(shù)實現(xiàn)組合的求解題目三要求:①提示用戶輸入n和m的數(shù)值;②輸出的 結(jié)果#include<stdio.h>/*=======階乘函數(shù)=======*/intfac(intn){intf;if(n<0)printf("n<0,dataerror!");elseif(n==0||n==1)f=1;elsereturnf;}/*=======組合函數(shù)=======*/intcombine(intm,intn){returnfac(n)/(fac(n-m)*fac(m));}/*=======main函數(shù)=======*/voidmain(){intm,n;intres;printf("\n提示:這是求組合求和公式的函數(shù),輸入兩個整數(shù)(分別為上標和下標)\n\n");loop:printf("Pleaseentertwonumbers:");scanf("%d%d",&m,&n);if(m>n)//判斷上標大于小標重新輸入gotoloop;res=combine(m,n);printf("\tResultis%d\n",res);題目四題目四:編寫一個求矩陣中最大元素以及最小元素的函數(shù)selectMaxAndMin(),在main函數(shù)中調(diào)用該函數(shù)要求:最大值和最小值的輸出操作,可以放在selectMaxAndMin()函數(shù)中#include<stdio.h>#defineROW4//矩陣的行#defineCOLUMN4//矩陣的列/*=======在矩陣中選擇最大最小數(shù)的函數(shù)=======*/voidselectMaxAndMin(intarry[ROW][COLUMN])//用指針更方便{inttempMax,tempMin;if(arry[0][0]>arry[0][1])//賦初始值{}else{}

tempMax=arry[0][0];tempMin=arry[0][1];tempMax=arry[0][1];tempMin=arry[0][0];for(inti=0;i<ROW;i++)//判斷大小,分別賦值{for(intj=0;j<COLUMN;j++){if(arry[i][j]>tempMax){tempMax=arry[i][j];}if(arry[i][j]<tempMin){tempMin=arry[i][j];}}}printf("\tMaxis%d\n\tMinis%d\n",tempMax,tempMin);}//主函數(shù)intmain(){intmat[ROW][COLUMN];printf("Pleaseentera%dX%dmatrix:\n",ROW,COLUMN);for(inti=0;i<ROW;i++)//輸入矩陣{for(intj=0;j<COLUMN;j++){scanf("%d",&mat[i][j]);}}selectMaxAndMin(mat);return0;}題目五題目五要求:某日,我軍某部截獲了一份敵方電報,經(jīng)過仔細分析后發(fā)現(xiàn):該電文中所有的字母字符都是經(jīng)過某種運算后得到的,然那些非字母字符則沒有經(jīng)過任何處理。例如,原文中的字符A對應(yīng)電文中的字符E,原文中的字符b對應(yīng)電文中的字符f,原文中的字符W對應(yīng)電文中的字符符!在電文中仍為!#include<stdio.h>#defineSIZE20 //定義大小/*=======密碼翻譯的函數(shù)=======*/chartrans(chara){if((a>='a'&&a<='v')||(a>='A'&&a<='V')){}else{

returna+4;if(a>='w'||a>='W'){}else{

returna-22;returna;}}}//主函數(shù)intmain(void){printf("請輸入原文:\n\n\n");charstr[SIZE];gets(str);printf("\n\n\n");printf("正在破解……\n\n\n");printf("破譯的原文是:");for(inti=0;i<20;i++){str[i]=trans(str[i]);if(str[i]=='\0')//判斷是否結(jié)束break;printf("%c",str[i]);}printf("\n");題目六題目六:編寫一個函數(shù),求解輸入矩陣的轉(zhuǎn)置矩陣并輸出#include<stdio.h>#defineROW3//矩陣的行#defineCOLUMN4//矩陣的列/*=======矩陣的輸入函數(shù)=======*/voidmatInput(intmat[][COLUMN]){for(inti=0;i<ROW;i++)for(intj=0;j<COLUMN;j++){printf("請輸入矩陣元素[%d][%d]=:",i,j);scanf("%d",&mat[i][j]);}}/*=======原始矩陣的打印函數(shù)=======*/voidmatPrint(intmat[][COLUMN]){for(inti=0;i<ROW;i++){for(intj=0;j<COLUMN;j++){printf("%3d",mat[i][j]);}printf("\n");}}/*=======轉(zhuǎn)置矩陣的打印函數(shù)=======*/voidmatTrasPrint(intmat[][COLUMN]){intarr[COLUMN][ROW];for(inti=0;i<COLUMN;i++){for(intj=0;j<ROW;j++){arr[i][j]=mat[j][i];printf("%3d",arr[i][j]);}printf("\n");}}/*=======main函數(shù)=======*/intmain(void){printf("================================================================================");printf("%dX%d的矩陣:\n",ROW,COLUMN);intmat[ROW][COLUMN];matInput(mat);printf("================================================================================");printf("原始矩陣為:\n");matPrint(mat);printf("================================================================================");printf("原始矩陣的轉(zhuǎn)置矩陣為\n");matTrasPrint(mat);return0;}題目七:用戶輸入的字符串,以相反的順序打印出來。題目七要求:利用遞歸函數(shù)調(diào)用形式#include<stdio.h>#defineSI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論