




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、專升本計算機C語言程序設計:函數程序設計7.1.1 求Xn#include stdio.hdouble pow(double x,int n)/*函數的定義在main()之前時不需要聲明*/ double y; int i; y=1; if(n=0) return 1.0; else if(n0) for(i=1;i=n;i+) y=y*x; return y; else for(i=1;i=-n;i+) y=y*x; return 1/y; main()int x,y;printf(input x:);scanf(%d,&x);printf(input n:);scanf(%d,&y);pr
2、intf(result:%fn,pow(x,y);7.1.2 萬年歷#include main() int i,j,day,year,temp,temp_i; long int Year_days; long int sumdays(int year);/*函數定義在main()之后,在main()中要聲明*/ int IsLeapYear(int year);/*函數聲明的格式和定義函數時的頭一樣*/ int month_day=0,31,28,31,30,31,30,31,31,30,31,30,31,29,everyday614; /*此數組用來保存計算所得的日歷*/ printf(Pl
3、ease enter the year: ); scanf(%d,&year); Year_days=sumdays(year); /*調用函數sumdays()計算天數,year是實在參數*/ for( temp=1; temp=6; temp+ ) /*分6次輸出12個月的日歷*/ for(i=0;i6;i+) for(j=0;j14;j+) everydayij=0; switch(temp) /*一行輸出二個月份*/ case 1: printf(tJanuary %dtt February %dn,year,year);break; case 2: printf(tMarch %dt
4、t April %dn,year,year);break; case 3: printf(tMay %dtt June %dn,year,year);break; case 4: printf(tJuly %dtt August %dn,year,year);break; case 5: printf(tSeptember %dtt October %dn,year,year);break; case 6: printf(tNovember %dtt December %dn,year,year);break; printf(Mon Tue Wed Thu Fri Sat Sun Mon Tu
5、e Wed Thu Fri Sat Sunn); i=j=0; for( temp_i=0; temp_i(Year_days % 7); temp_i+) /*初始化數組*/ everyday0j+=0; day = 1; while(day=month_day2*temp-1) /*把奇數月的日歷輸入數組*/ if(j%7=0) j=0,i+; everydayij+=day; Year_days+; day+; i=0,j=7; for( temp_i = 0; temp_i (Year_days % 7); temp_i+) /*初始化數組*/ everyday0j+=0; day=1
6、; if( IsLeapYear(year) & 2*temp = 2) /*調用函數判斷是否是閏年*/ while( day = month_day13 ) /*把閏年偶數月的日歷輸入數組*/ if(j%14=0)j=7,i+; everydayij+=day; Year_days+; day+; else while(day=month_day2*temp) /*把偶數月的日歷輸入數組*/ if(j%14=0) j=7,i+; everydayij+=day; Year_days+; day+; for(i=0;i6;i+) /*輸出存儲在數組中的日期 */ for(j=0;j14;j+)
7、 if(everydayij!=0) printf(%-4d,everydayij); else printf( ); if(j=6) printf( ); printf(n); if( getch()=q) exit(0); getch();int IsLeapYear( int year ) /*定義函數IsLeapYear()用來判斷是否是閏年*/ if(year %4 = 0) & (year % 100 != 0) | (year % 400 = 0) ) return 1; else return 0;long int sumdays(int year) /*定義函數sumdays
8、()計算輸入年份之前的天數*/ int year_start=1,leapsum=0; while(year_startyear) if(IsLeapYear(year_start) /*調用函數IsLeapYear()判斷是否是閏年*/ leapsum+; year_start+; return 366*leapsum + 365*(year-leapsum);7.1.3 四則運算練習#include long int a,b,c,d,x,y,z; /*定義全局變量,*/char op;main() int f1(),f2(); /*函數聲明,無參函數*/ printf(Please inp
9、ut two data for example b/a,d/c:n); scanf(%ld/%ld%c%ld/%ld,&b,&a,&op,&d,&c); if(a=0|c=0) exit(0); f1(); /*函數調用*/ f2(); printf(%ld/%ld%c%ld/%ld = %ld/%ld,b,a,op,d,c,y,x);int f1() /*定義無參函數,但函數對全局變量進行操作*/ /*本函數無返回值,值已保存到全局變量中*/ if(op=+) y=b*c+d*a;x=a*c; if(op=-) y=b*c-d*a;x=a*c; if(op=*) y=b*d;x=a*c; i
10、f(op=/) y=b*c;x=a*d;int f2() /*和上一個函數一樣為無參函數,但函數對全局變量進行操作*/ /*本函數無返回值,值已保存到全局變量中*/ int i; /*函數的局部變量,盡在本函數內有效*/ z=x; if(xy) z=y; i=z; while(i1) if(x%i=0&y%i=0) x=x/i;y=y/i;continue; i-; 7.2.1 求最小值#include main() int x,y,z,min; int mintwo(int,int),minthree(int,int,int); printf(nPlease input three inte
11、rgers:); scanf(%d %d %d,&x,&y,&z); min=minthree(x,y,z);/*函數調用,傳入三個實參*/ printf(Min is %d,min); getch();int mintwo(int a, int b) /*函數定義*/ return(ab?a:b); /*使用條件語句,并將計算結果返回*/int minthree(int a,int b,int c) int z; z=mintwo(a,b); /*函數內嵌套調用函數mintwo()*/ z=mintwo(z,c); return(z);7.2.2 奇偶函數調用#include main()f
12、loat even(),odd(),dcall(); /*聲明需調用的函數*/float sum;int n;printf(nPlease input a interger:);while (1) /*判斷用戶輸入的數據是否大于1*/ scanf(%d,&n); if(n1) break;sum=(n%2=0)? dcall(even,n):dcall(odd,n); /*判斷是奇還是偶, 并調用對應的函數*/if(n%2=0)printf(Even=%f,sum);elseprintf(Odd=%f,sum);getch();float even(int n)float s=0;int i;
13、for(i=2;i=n;i+=2)s+=1.0/i;return(s);float odd(int n)float s=0;int i;for(i=1;i=n;i+=2)s+=1.0/i;return(s);float dcall(float (*fp)(),int n) float s; s=(*fp)(n); /*函數的嵌套調用,用指針實現多函數的調用*/ return(s);7.2.3 求階乘倒數之和#include main() long int rfact(int n); /*遞歸函數的聲明*/ long int n,i; float e=0,p; printf(Please inp
14、ut a integer:); scanf(%ld,&n); for(i=1;i=n;i+) p=rfact(i); /*函數調用*/ e=e+1.0/p; /*求和*/ printf(sum=%15.12fn,e); getch();long int rfact(int n) /*遞歸函數定義*/ if(n0) /*數據判斷*/ printf(Negative argument!n); exit(-1); /*正常退出*/ else if(n=0) /*遞歸的終點*/ return(1); else return n*rfact(n-1); /*遞歸調用*/7.2.4 漢諾塔#include
15、 main() int m; void hanoi(int n,char a, char b, char c); printf(Input the number of diskes:); scanf(%d,&m); printf(The step to moving %3d diskes:,m); hanoi(m,a,b,c); getch();void hanoi(int n,char a, char b, char c) if(n=1) printf(%c-%ct,a,c); else hanoi(n-1,a,c,b); /*第一次遞歸函數的調用*/ printf(%c-%cn,a,c);
16、 hanoi(n-1,b,a,c); /*第二次遞歸函數的調用*/ 7.3.1 三角函數使用# include # include main() void stringcpy(char a,char b,int x,int y); char ch18,ch24,ch33; int i,j=0; double (*f)(); printf(nInput sin(x) or cos(x) or tan(x):); scanf(%s,ch1); stringcpy(ch1,ch2,0,2); stringcpy(ch1,ch3,4,5); for(i=0;i=strlen(ch3)-1;i+) j=
17、j*10+(ch3i-0); if(!strcmp(ch2,sin) f=sin; else if(!strcmp(ch2,cos) f=cos; else if(!strcmp(ch2,tan) f=tan; else printf(Input errorn); exit(-1); printf(n%s(%d)=%8.3fn,ch2,j,(*f)(3.1415*j/180);void stringcpy(char a,char b,int x,int y) /*定義用于分離數據的函數*/ int i,j=0; for(i=x;i=y;i+) bj=ai; j+; bj=0;7.3.2 系統鼠
18、標檢查#include/*包含printf()庫函數*/#include/*包含exit()、getenv()庫函數*/#include/*包含strcmp()庫函數*/main() char *p; if(p=getenv(MOUSE)!=NULL) /*調用getenv()讀取系統環境變量*/ if(!strcmp(p,YES) printf(Mouse is OKn); else printf(n No mouse); getch();7.3.3 機器信息顯示#include stdio.h#include stdlib.h #include ctype.h#include conio.h main() void checksys(char); char ch; do printf(A: display directory
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 3.2中國特色社會主義的創立、發展和完善 教學設計 統編版高中思想政治必修1中國特色社會主義
- 2025年廣州市稅務系統遴選面試真題附詳解含答案
- 鋁行業規范條件
- 聯系村工作分類指導實施方案范文(9篇)
- 敏感元件系統的高精度信號處理與分析技術
- 高溫作業防暑降溫用品配備
- 2025年瀘州古藺縣教育和體育局城區學校教師招聘考試筆試試題(含答案)
- 老爸的課件名稱
- 老年綜合評估技能操作課件
- 老年護理課程直播課件
- 食品化學課件(十章全)
- 光刻機行業深度報告博采眾星之光點亮皇冠明珠-華福證券
- 學校桌椅采購投標方案
- 盤扣式外腳手架施工方案
- 初中數學目錄(浙教版)
- 開油鍋紅袖章制度
- 江蘇譯林版小學英語單詞匯總表-帶音標可打印
- 高壓靜電場對儲藏果蔬保鮮效果的影響
- 護理規培結業考試復習題庫800題(含答案)
- 大學物理A1試卷B稿及參考答案
- 2023年考研考博-考博英語-揚州大學考試歷年高頻考點真題薈萃帶答案
評論
0/150
提交評論