版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
項目八優(yōu)化學(xué)生成績分析系統(tǒng)-指針1【項目要求】借助于指針對上一章的的學(xué)生成績分析系統(tǒng)進行優(yōu)化,對某班一門課的成績進行分析,要求有如下功能:1.查詢?nèi)砍煽儯?.查詢平均分;3.查詢不及格率;4.查詢最高分;5.按成績降序排列;0.退出。為了保存一個班的C語言成績需要借助于一維數(shù)組,通過指針對其數(shù)據(jù)進行操作。將本項目分成兩部分,首先借助于指針對一維數(shù)組進行訪問,然后介紹一種新的排序算法—選擇排序。【項目分析】2問題情境及實現(xiàn)
通過前面所學(xué)知道,可以通過下標法訪問數(shù)組元素,數(shù)組名代表數(shù)組的首地址,即指針,我們亦可通過其對數(shù)組元素進行訪問。#defineN100#include<stdio.h>voidmain(){int
s[N],n,*p;printf("請輸入該班人數(shù)");scanf("%d",&n);printf("請錄入成績");for(p=s;p<s+n;p++)
scanf("%d",p);printf("該班的全部成績是:\n");for(p=s;p<s+n;p++)printf("%6d",*p);}344本講主要內(nèi)容2.指針與函數(shù)本講小結(jié)1.指針與字符串3.指針數(shù)組重點:指針與函數(shù)4.指針應(yīng)用舉例1指針與字符串(1)1.1字符串的表示形式用字符數(shù)組存放一個字符串,并輸出該字符串。
main(){ charstring[]="IloveChina!";
printf("%s\n",string);}如果用字符指針,這段代碼應(yīng)如何修改?51指針與字符串(2)1.1字符串的表示形式(續(xù))用字符串指針指向一個字符串
main(){ char*string="IloveChina!";
printf("%s\n",string);}61指針與字符串(3)1.1字符串的表示形式(續(xù))例1寫出下面程序的運行結(jié)果
#include<stdio.h>voidmain(){char*ptr1,*ptr2;ptr1=ptr2="abcde";
while(*ptr2!='\0')
putchar(*ptr2++);
putchar('\n');
while(--ptr2>=ptr1)
putchar(*ptr2);
putchar('\n');}運行結(jié)果:abcdeedcba71指針與字符串(4)1.2使用字符串指針變量與字符數(shù)組的區(qū)別①字符數(shù)組由若干元素組成,每個元素中放一個字符,而字符指針變量中存放的是地址(字符串的首地址)。②賦值方式不同。對字符數(shù)組只能對各個元素賦值,不能用一個字符串給一個字符數(shù)組賦值,但對于字符指針變量可以用一個字符串給它賦值。charstr[14];str=“IloveChina”;char*pstr;pstr=“IloveChina”;√81指針與字符串(5)1.2使用字符串指針變量與字符數(shù)組的區(qū)別(續(xù))例2分析下面程序的運行結(jié)果
main(){char*a="ILoveChina!";
a=a+7;
printf(“%s\n",a);}運行結(jié)果:China!91指針與字符串(6)1.2使用字符串指針變量與字符數(shù)組的區(qū)別(續(xù))例3分析下面程序的運行結(jié)果
main(){char*a="ILoveChina!";
inti;
printf("thesixthcharacteris%c\n",a[5]);for(i=0;a[i]!='\0';i++)
printf("%c",a[i]);}運行結(jié)果:thesixthcharacteriseILoveChina!返回主菜單102指針與函數(shù)(1)2.1指針變量作為函數(shù)參數(shù)指針變量作為函數(shù)參數(shù),實參變量和形參變量的傳遞方式為地址傳遞voidswap1(intx,inty){
intz; z=x; x=y; y=z;}voidswap2(int*x,int*y){
intz; z=*x; *x=*y; *y=z;}值傳遞地址傳遞112指針與函數(shù)(2)2.1指針變量作為函數(shù)參數(shù)(續(xù))例4程序填空,然后分析運行結(jié)果。(輸入5,6)#include<stdio.h>main(){
int
a,b;voidswap1(intx,inty);voidswap2(int*x,int*y);
scanf("%d,%d",&a,&b);
printf("a=%d\tb=%d\n",a,b);swap1(
);
printf("a=%d\tb=%d\n",a,b);swap2(
);
printf("a=%d\tb=%d\n",a,b);}運行結(jié)果:a=5b=6a=5b=6a=6b=5a,b&a,&b122指針與函數(shù)(3)2.1指針變量作為函數(shù)參數(shù)(續(xù))例5
一個自然數(shù)是素數(shù),且它的數(shù)字位置經(jīng)過任意對換后仍為素數(shù),則稱為絕對素數(shù),例如13,試求所有兩位絕對素數(shù)。解題思路①使用哪種類型的程序結(jié)構(gòu)?②給出一個數(shù),如何求任意數(shù)字位置對換后的數(shù)?③如何判斷一個數(shù)為素數(shù)?例5程序編寫思考:如果求所有三位絕對素數(shù),132指針與函數(shù)(4)2.2指向函數(shù)的指針變量在C語言中,一個函數(shù)占用一段連續(xù)的內(nèi)存區(qū),而函數(shù)名就是該函數(shù)所占內(nèi)存區(qū)的首地址。我們可以把函數(shù)的這個首地址(或稱入口地址)賦予一個指針變量,使該指針變量指向該函數(shù)。然后通過指針變量就可以找到并調(diào)用這個函數(shù)。我們把這種指向函數(shù)的指針變量稱為“函數(shù)指針變量”。142指針與函數(shù)(5)2.2指向函數(shù)的指針變量(續(xù))函數(shù)指針變量定義的一般形式為:類型說明符(*指針變量名)();表示被指函數(shù)的返回值的類型“*”后面的變量是定義的指針變量指針變量所指的是一個函數(shù)如:int(*pf)();152指針與函數(shù)(6)2.2指向函數(shù)的指針變量(續(xù))用函數(shù)指針變量調(diào)用函數(shù)的一般形式為:(*指針變量名)(實參表)162指針與函數(shù)(7)2.2指向函數(shù)的指針變量(續(xù))例6將給出的程序修改為使用函數(shù)指針變量定義的方式
main(){
int
max(int,int);
inta,b,c;
scanf("%d,%d",&a,&b);c=max(a,b);
printf("a=%d,b=%d,max=%d",a,b,c);}max(int
x,inty){
intz;
if(x>y)z=x;elsez=y;return(z);}int(*p)();p=max;c=(*p)(a,b);172指針與函數(shù)(8)2.2指向函數(shù)的指針變量—函數(shù)指針作為函數(shù)參數(shù)例7分析下面程序的執(zhí)行過程#include<stdio.h>main(){int
add(int
a,intb);
int
sub(int
a,intb);
fun(int(*)p(),int
a,intb);
int(*ps)(),x,y,z;
scanf("%d,%d",&x,&y);
if(x<y) z=fun(add,x,y);else{ ps=sub; z=fun(ps,x,y);}
printf("x=%d,y=%d,z=%d\n",x,y,z);}add(int
a,intb){return(a+b);}sub(int
a,intb){return(a-b);}fun函數(shù)如何定義?fun(int(*pf)(),int
a,intb){return((*pf)(a,b));}182指針與函數(shù)(9)2.2指向函數(shù)的指針變量—返回值為指針的函數(shù)定義返回值為指針變量類型的函數(shù)的一般形式為:類型符*函數(shù)名(參數(shù)表)192指針與函數(shù)(10)2.2指向函數(shù)的指針變量—返回值為指針的函數(shù)例8分析給出程序的運行結(jié)果#include<stdio.h>int*f(int*x,int*y){ if(*x<*y) returnx; else returny;}voidmain(){ inta=17,b=18,*p,*q,*r; p=&a; q=&b; r=f(p,q);
printf("%d,%d,%d\n",*p,*q,*r);}運行結(jié)果:17,18,17返回主菜單203指針數(shù)組(1)3.1指針數(shù)組指針數(shù)組的定義形式為:類型符*指針數(shù)組名[常量表達式];課堂練習(xí),分析下面語句的含義:int*p[4];Int(*p)[4];指針數(shù)組,有4個元素,每個元素都是指向整型變量指針變量由4個整型變量組成的數(shù)組的指針213指針數(shù)組(2)3.1指針數(shù)組(續(xù))#include<stdio.h>main(){staticint
a[3][4]={{11,22,33,44},{55,66,77,88},{99,110,122,133}};
int*p[3]={a[0],a[1],a[2]};
int
i,j;
for(i=0;i<3;i++){
for(j=0;j<4;j++)
printf("a[%d][%d]=%d\t",i,j,p[i][j]);
printf("\n");}}133122110998877665544332211p[0]p[1]p[2]223指針數(shù)組(3)3.1指針數(shù)組(續(xù))#include<stdio.h>main(){staticint
a[3][4]={{11,22,33,44},{55,66,77,88},{99,110,122,133}};
int*p[3]={a[0],a[1],a[2]};
int(*q)[4];
int
i,j;q=a;
for(i=0;i<3;i++){
for(j=0;j<4;j++)
printf("a[%d][%d]=%d\t",i,j,(*(q+i))[j]);
printf("\n");}}133122110998877665544332211qq+1q+2(*q)[0](*q)[1](*q)[2](*q)[3]233指針數(shù)組(4)P223指向指針的指針P224main函數(shù)的參數(shù)返回主菜單244指針應(yīng)用舉例(1)例9
編寫程序,利用系統(tǒng)提供的圖形庫函數(shù)在屏幕上畫一個圖形,方法是將一個半徑為r1的圓周等分n份,再以每個等分點為圓心,以半徑rs畫n個圓,要求在命令方式下給出r1,rs的值及環(huán)的顏色值。本例主要說明main函數(shù)參數(shù)的使用,254指針應(yīng)用舉例(2)例10編寫程序,采用冒泡法對一組整數(shù)進行升序或降序排序,然后輸出排序結(jié)果。要求:由計算機生成10—100以內(nèi)的隨機整數(shù)50個,放入數(shù)組。通過函數(shù)指針,完成對數(shù)組的升序或者降序的排序。本例主要說明指針作為函數(shù)參數(shù),返回主菜單262727本講小結(jié)掌握字符指針的使用掌握指針作為函數(shù)參數(shù)的使用了解指向函數(shù)的指針變量的使用了解指針數(shù)據(jù)的使用【項目要求】借助于指針對上一章的的學(xué)生成績分析系統(tǒng)進行優(yōu)化,對某班一門課的成績進行分析,要求有如下功能:1.查詢?nèi)砍煽儯?.查詢平均分;3.查詢不及格率;4.查詢最高分;5.按成績降序排列;0.退出。為了保存一個班的C語言成績需要借助于一維數(shù)組,通過指針對其數(shù)據(jù)進行操作。將本項目分成兩部分,首先借助于指針對一維數(shù)組進行訪問,然后介紹一種新的排序算法—選擇排序。【項目分析】28問題情境及實現(xiàn)
通過前面所講可實現(xiàn)本系統(tǒng)的前4個功能,下面借助于指針實現(xiàn)數(shù)據(jù)的排序。采用簡單選擇排序方法進行,程序如下:#defineN100#include<stdio.h>#include<string.h>voidfselectsort(int*a,intn){int*p,*q,*pmax,t;for(p=a;p<a+n-1;p++){pmax=p;
for(q=p+1;q<a+n;q++)if(*pmax<*q)pmax=q;
if(p!=pmax){t=*p;*p=*pmax;*pmax=t;}}}
29相關(guān)知識:簡單選擇排序
簡單選擇排序的基本方法是:第一趟,從n個記錄中找出關(guān)鍵字最小的記錄與第一個記錄交換;第二趟,從第二個記錄開始的n-1個記錄中再選出關(guān)鍵字最小的記錄與第二個記錄交換;如此,第i趟,則從第i個記錄開始的n-i+1個記錄中選出關(guān)鍵字最小的記錄與第i個記錄交換,直到整個序列按關(guān)鍵字有序排列。30
簡單選擇排序算法:voidselectsort(datatype
r[],intn){int
i,j,t;
for(i=1;i<=n;i++){t=i;
for(j=i+1;j<=n;j++)
if(r[t]>r[j])t=j;
if(i!=t){r[0]=r[t];
r[t]=r[i];
r[i]=r[0];} }}31對如下關(guān)鍵字(49,38,65,97,76,13,27,49)進行簡單選擇排序的過程見下圖。
r012345678初始關(guān)鍵字4938659776132749
13[38
65
97764927
49]第一趟結(jié)果:第二趟結(jié)果:
1327
[65
97764938
49]第三趟結(jié)果:
1327
38
[97
764965
49]第四趟結(jié)果:
1327
38
49[769765
49]第五趟結(jié)果:
1327
38
4949[9765
76]第六趟結(jié)果:
1327
38
4949[6597
76]第七趟結(jié)果:
1327
38
49496576
97簡單選擇排序移動記錄的次數(shù)較少,但關(guān)鍵字的比較次數(shù)依然是n(n+1)/2,所以時間復(fù)雜度仍為O(n2)。
32樹形選擇排序按照錦標賽的思想進行,將n個參賽的選手看成完全二叉樹的葉結(jié)點,則該完全二叉樹有2n-2或2n-1個結(jié)點。首先,兩兩進行比賽(在樹中是兄弟的進行,否則輪空,直接進入下一輪),勝出的再兄弟間再兩兩進行比較,直到產(chǎn)生第1名。接下來,將作為第1名的結(jié)點看成最差的,并從該結(jié)點開始,沿該結(jié)點到根路徑上,依次進行各分枝結(jié)點子女間的比較,勝出的就是第2名。因為和他比賽的均是剛剛輸給第1名的選手。如此,繼續(xù)進行下去,直到所有選手的名次排定。33對如下關(guān)鍵字(49,38,65,97,76,13,27,49)進行簡單選擇排序的過程見下圖。
r012345678初始關(guān)鍵字4938659776132749492776133849976549977649977697存放排序012345678結(jié)果的數(shù)組97再將97設(shè)為最差(最小)。34
r012345678初始關(guān)鍵字49386507613274949277613384906549657649657676存放排序012345678結(jié)果的數(shù)組7697再將76設(shè)為最差(最小)。35
r012345678初始關(guān)鍵字493865001327494927013384906549651349654965存放排序012345678結(jié)果的數(shù)組657697再將65設(shè)為最差(最小)。36
r012345678初始關(guān)鍵字493800013274949270133849004901349494949存放排序012345678結(jié)果的數(shù)組49657697注意:若取49則為穩(wěn)定的排序。再將49設(shè)為最差(最小)。37
r012345678初始關(guān)鍵字0380001327490270133849003801349384949存放排序012345678結(jié)果的數(shù)組4949657697再將49設(shè)為最差(最小)。38
r012345678初始關(guān)鍵字03800013270027013380003801327382738存放排序012345678結(jié)果的數(shù)組384949657697再將38設(shè)為最差(最小)。39
r012345678初始關(guān)鍵字0000013270027013000000132702727存放排序012345678結(jié)果的數(shù)組27384949657697再將27設(shè)為最差(最小)。40
r012345678初始關(guān)鍵字0000013000001300000013001313最后排序012345678的結(jié)果132738494965769741堆排序堆排序是樹形選擇排序方法的改進,它使用的輔助空間較少,僅增加一個記錄空間進行交換,同時關(guān)鍵字比較的次數(shù)和樹形選擇排序相當。1.堆的定義和存儲結(jié)構(gòu)堆是一棵完全二叉樹,組成這棵完全二叉樹的n個元素序列k1,k2,…,kn,當且僅當滿足下述關(guān)系之一時,稱之為堆。Ki≥k2iKi≥k2i+1大頭堆或者Ki≤k2iKi≤k2i+1小頭堆其中i=1,2,…,n/242如以下關(guān)鍵字(49,38,65,97,76,13,27,49)所建立的大頭堆和小頭堆如下圖所示:用一維數(shù)組存儲一個堆,則堆對應(yīng)的存儲結(jié)構(gòu)如下:9776654949132738大頭堆1338274976654997小頭堆
012345678大頭堆9776654949132738012345678小頭堆133827497665499743建立初始堆
對初始序列建堆的過程,就是一個反復(fù)進行篩選的過程。對n個結(jié)點的完全二叉樹只需從第n/2個元素開始。例如:對元素(49,38,65,97,76,13,27,49)進行篩選的過程見下圖(建小頭堆)。4938659776132749i=4將97與49交換4938654976132797i=3將65與13交換444938134976652797i=2不進行交換4938134976652797i=1將49與13交換再與27交換1338274976654997建好的小頭堆45從篩選過程可以看出,所建小頭堆是從第4個元素97開始,最后到第1個元素為止。整個篩選過程應(yīng)該是在數(shù)組中進行的,其數(shù)組的變化過程見下圖。876543210
r4927137697653849初始關(guān)鍵字
4938
65497613279797被篩選后:
4938
13497665279765被篩選后:
4938
13497665279738被篩選后:
1338
27497665499749被篩選后(初始堆):46堆排序
設(shè)有n個元素,首先將這n個元素按關(guān)鍵字建成堆(根據(jù)所排序列的要求建成大頭堆或小頭堆),用根結(jié)點元素與第n個結(jié)點元素交換;然后對前n-1個結(jié)點進行篩選,重新建堆,再以根結(jié)點元素與第n-1個結(jié)點元素交換;重復(fù)上述操作,直到整個序列有序。對上例進行堆排序的過程見下圖。133827497665499713與97交換9738274976654913重建堆472738494976659713973849497665271327與97交換3849499776652713重建堆38與65交換6549499776382713重建堆48496549977638271349與76交換7665499749382713重建堆496576974938271349與97交換9765764949382713重建堆49659776494938271365與76交換7697654949382713重建堆769765494938271376與97交換977665494938271350整個堆排序和重建堆的過程也是在數(shù)組中進行的其變化過程見下圖所示。初始012345678小頭堆1338274976654997初始012345678小頭堆1338274976654997堆排序中的數(shù)組變化過程重建堆的數(shù)組變化過程
973827497665491313與97對調(diào):
273849
4976659713
973849497665271327與97對調(diào):
3849
499776652713
654949977638271338與65對調(diào):
4965499776382713
766549974938271349與76對調(diào):
4965769749382713
976576494938271349與97對調(diào):
6597764949382713
769765494938271365與76對調(diào):
7697654949382713
977665494938271376與97對調(diào):重建堆重建堆重建堆重建堆重建堆重建堆堆排序的時間復(fù)雜度也為O(nlog2n),是一個不穩(wěn)定的排序方法。51按遞減序列堆排序的算法:voidheapadjust(datatype
r[],int
s,intm){r[0]=r[s];
for(j=2*s;j<=m;j=j*2)/*沿關(guān)鍵字較小的孩子結(jié)點向下篩選*/ {if(j<m&&r[j]>r[j+1])j=j+1;/*為關(guān)鍵字較小的元素下標*/ if(r[0]<r[j])break;/*r[0]應(yīng)插入在位置s上*/
else{r[s]=r[j];s=j;}/*使s結(jié)點滿足堆定義*/}
r[s]=r[0];/*插入*/}voidheapsort(datatype
r[],intn){for(i=n/2;i>0;i--)Heapadjust(r,i,n);/*將r[1..n]建成堆*/
for(i=n;i>1;i--){r[0]=r[1];r[1]=r[i];r[i]=r[0];/*堆頂與堆低元素交換*/heapadjust(r,1,i-1);/*將r[1..i-1]重新調(diào)整為堆*/ }}521指針與字符串(1)1.1字符串的表示形式用字符數(shù)組存放一個字符串,并輸出該字符串。
main(){ charstring[]="IloveChina!";
printf("%s\n",string);}如果用字符指針,這段代碼應(yīng)如何修改?531指針與字符串(2)1.1字符串的表示形式(續(xù))用字符串指針指向一個字符串
main(){ char*string="IloveChina!";
printf("%s\n",string);}541指針與字符串(3)1.1字符串的表示形式(續(xù))例1寫出下面程序的運行結(jié)果
#include<stdio.h>voidmain(){char*ptr1,*ptr2;ptr1=ptr2="abcde";
while(*ptr2!='\0')
putchar(*ptr2++);
putchar('\n');
while(--ptr2>=ptr1)
putchar(*ptr2);
putchar('\n');}運行結(jié)果:abcdeedcba551指針與字符串(4)1.2使用字符串指針變量與字符數(shù)組的區(qū)別①字符數(shù)組由若干元素組成,每個元素中放一個字符,而字符指針變量中存放的是地址(字符串的首地址)。②賦值方式不同。對字符數(shù)組只能對各個元素賦值,不能用一個字符串給一個字符數(shù)組賦值,但對于字符指針變量可以用一個字符串給它賦值。charstr[14];str=“IloveChina”;char*pstr;pstr=“IloveChina”;√561指針與字符串(5)1.2使用字符串指針變量與字符數(shù)組的區(qū)別(續(xù))例2分析下面程序的運行結(jié)果
main(){char*a="ILoveChina!";
a=a+7;
printf(“%s\n",a);}運行結(jié)果:China!571指針與字符串(6)1.2使用字符串指針變量與字符數(shù)組的區(qū)別(續(xù))例3分析下面程序的運行結(jié)果
main(){char*a="ILoveChina!";
inti;
printf("thesixthcharacteris%c\n",a[5]);for(i=0;a[i]!='\0';i++)
printf("%c",a[i]);}運行結(jié)果:thesixthcharacteriseILoveChina!返回主菜單582指針與函數(shù)(1)2.1指針變量作為函數(shù)參數(shù)指針變量作為函數(shù)參數(shù),實參變量和形參變量的傳遞方式為地址傳遞voidswap1(intx,inty){
intz; z=x; x=y; y=z;}voidswap2(int*x,int*y){
intz; z=*x; *x=*y; *y=z;}值傳遞地址傳遞592指針與函數(shù)(2)2.1指針變量作為函數(shù)參數(shù)(續(xù))例4程序填空,然后分析運行結(jié)果。(輸入5,6)#include<stdio.h>main(){
int
a,b;voidswap1(intx,inty);voidswap2(int*x,int*y);
scanf("%d,%d",&a,&b);
printf("a=%d\tb=%d\n",a,b);swap1(
);
printf("a=%d\tb=%d\n",a,b);swap2(
);
printf("a=%d\tb=%d\n",a,b);}運行結(jié)果:a=5b=6a=5b=6a=6b=5a,b&a,&b602指針與函數(shù)(3)2.1指針變量作為函數(shù)參數(shù)(續(xù))例5
一個自然數(shù)是素數(shù),且它的數(shù)字位置經(jīng)過任意對換后仍為素數(shù),則稱為絕對素數(shù),例如13,試求所有兩位絕對素數(shù)。解題思路①使用哪種類型的程序結(jié)構(gòu)?②給出一個數(shù),如何求任意數(shù)字位置對換后的數(shù)?③如何判斷一個數(shù)為素數(shù)?例5程序編寫思考:如果求所有三位絕對素數(shù),612指針與函數(shù)(4)2.2指向函數(shù)的指針變量在C語言中,一個函數(shù)占用一段連續(xù)的內(nèi)存區(qū),而函數(shù)名就是該函數(shù)所占內(nèi)存區(qū)的首地址。我們可以把函數(shù)的這個首地址(或稱入口地址)賦予一個指針變量,使該指針變量指向該函數(shù)。然后通過指針變量就可以找到并調(diào)用這個函數(shù)。我們把這種指向函數(shù)的指針變量稱為“函數(shù)指針變量”。622指針與函數(shù)(5)2.2指向函數(shù)的指針變量(續(xù))函數(shù)指針變量定義的一般形式為:類型說明符(*指針變量名)();表示被指函數(shù)的返回值的類型“*”后面的變量是定義的指針變量指針變量所指的是一個函數(shù)如:int(*pf)();632指針與函數(shù)(6)2.2指向函數(shù)的指針變量(續(xù))用函數(shù)指針變量調(diào)用函數(shù)的一般形式為:(*指針變量名)(實參表)642指針與函數(shù)(7)2.2指向函數(shù)的指針變量(續(xù))例6將給出的程序修改為使用函數(shù)指針變量定義的方式
main(){
int
max(int,int);
inta,b,c;
scanf("%d,%d",&a,&b);c=max(a,b);
printf("a=%d,b=%d,max=%d",a,b,c);}max(int
x,inty){
intz;
if(x>y)z=x;elsez=y;return(z);}int(*p)();p=max;c=(*p)(a,b);652指針與函數(shù)(8)2.2指向函數(shù)的指針變量—函數(shù)指針作為函數(shù)參數(shù)例7分析下面程序的執(zhí)行過程#include<stdio.h>main(){int
add(int
a,intb);
int
sub(int
a,intb);
fun(int(*)p(),int
a,intb);
int(*ps)(),x,y,z;
scanf("%d,%d",&x,&y);
if(x<y) z=fun(add,x,y);else{ ps=sub; z=fun(ps,x,y);}
printf("x=%d,y=%d,z=%d\n",x,y,z);}add(int
a,intb){return(a+b);}sub(int
a,intb){return(a-b);}fun函數(shù)如何定義?fun(int(*pf)(),int
a,intb)
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)生慶十一國慶節(jié)征文(5篇)
- 萬能的年終工作總結(jié)范文(十篇)
- 產(chǎn)科醫(yī)師年度工作總結(jié)范文
- 企業(yè)會計人員工作總結(jié)范文(10篇)
- 安徽省淮北市和淮南市2025屆高三第一次質(zhì)量檢測思想政治試卷(含答案)
- 我心中的陽光5篇
- 公眾號推廣合作合同(2篇)
- 混凝土罐車車租賃合同
- 寫字樓買賣租賃合同
- 批發(fā)市場攤位租賃協(xié)議
- 蒙特利爾認知評估量表北京版
- GB/T 20154-2014低溫保存箱
- 固定資產(chǎn)報廢管理制度管理辦法
- 深基坑開挖及支護施工方案-經(jīng)專家論證
- 排水管渠及附屬構(gòu)筑物
- 養(yǎng)豬場施工噪聲環(huán)境影響分析
- Windows-Server-2012網(wǎng)絡(luò)服務(wù)架構(gòu)課件(完整版)
- 形位公差_很詳細(基礎(chǔ)教育)
- 手榴彈使用教案
- 600MW機組除氧器水位控制系統(tǒng)
- 史上最全的涉稅風(fēng)險
評論
0/150
提交評論