收藏 分享(赏)

C语言课堂教程.ppt

上传人:buyk185 文档编号:7313725 上传时间:2019-05-14 格式:PPT 页数:25 大小:520.50KB
下载 相关 举报
C语言课堂教程.ppt_第1页
第1页 / 共25页
C语言课堂教程.ppt_第2页
第2页 / 共25页
C语言课堂教程.ppt_第3页
第3页 / 共25页
C语言课堂教程.ppt_第4页
第4页 / 共25页
C语言课堂教程.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、项目五 根据条件进行学生成绩汇总,项目要求 一个班有40位学生(分成五个组,但每个组的人数不一样)参加了期终考试(考了三门课,分别是数学、语文、英语),老师想统计以下信息:1、统计小组一门课程的总分及平均分;2、统计小组若干门课程的总分及平均分;3、输出排序后小组三门课成绩单。,程序运行结果,项目分析 本项目要完成的功能相对比较多,为了使程序的结构清晰,我们可以将此项目进行分解: A:统计小组一门课程的总分及平均分;B:统计小组若干门课程的总分及平均分;C: 输出小组排序后三门课程的成绩单;M总负责,即制作菜单并根据需要调用相应的函数。 而C这个任务又比较多,所以将它分解为:d:输入记录;e:

2、计算每个同学的总分及平均分,f:是排序;g:输出排序后的记录。 这样的编程方式结构清晰,特别是对功能复杂的程序。 我们将A,B,C,D、e、f、g称为函数,M称为主函数。一个完整的C语言程序是由一个main()函数及若干个其他函数组成。在前面各项目中介绍的程序都只有一个主函数main(),但实用程序往往由多个函数组成。,首先,要了解函数的定义; 第二,要懂得函数的调用; 第三,函数的其他知识。,赡衬忽绊熏晨淫弟统赏才二初企疵许展玛爹渠黎须思对杀誓录泄俯宦浆涛C语言课堂教程C语言课堂教程,任务1 统计小组一门课程的总分及平均分,一、问题情景 一个班有40位学生(分成五个组,但每个组的人数不一样)

3、参加了期终考试(考了三门课,分别是数学、语文、英语),请你用菜单的方式:求小组一门课程的总分及平均分。即完成本项目中的第一个要求。 分析:主函数的功能是设计一个菜单,由所选择的菜单调用相应的函数,但为了界面清晰,所以程序的执行过程中多次用一条线划界。所以问题就归结为制作一条线的函数及求一门课程的总分及平均分。,#include “stdio.h“ void ppp() printf(“-n“); float avg1(int n) int x,i; float s=0; ppp(); printf(“请输入本小组的考试成绩n“); for(i=1;i=n;i+) scanf(“%d“, ,ma

4、in() int k,n,km; float sum,average; char ch; ppp(); printf(“t班级成绩统计n“); ppp(); printf(“1、统计小组一门课程的总分及平均分n“,n); printf(“2、统计小组若干门课程的总分及平均分n“); printf(“3、输出小组排序后三门课程的成绩单n“); printf(“请输入13之间的一个数:“); scanf(“%d“, ,无参函数,有参函数,蓟抠妹撵溶簿敲茧廷壶松睫鲁皮识珊部虑宰补黍晤肝笋闲衫议硝斟祷型赌C语言课堂教程C语言课堂教程,三、相关知识,(一) 无参函数 1、无参函数的一般形式 类型说明符

5、函数名() 声明部分 语句 ,无参函数的调用 函数说明语句 函数名();,函数类型 函数名() 函数体; main() 语句; 函数名(); 语句;,函数类型 函数名(); main() 语句; 函数名(); 语句; 函数类型 函数名() 函数体;,函数说明语句,诅焊怎盈铸猴室聋你巩蔷阑胖帽陵虏膛讶股拄韧眶您骨槐为埂相魁汤菱贪C语言课堂教程C语言课堂教程,【例5-1】输出十行十列的星号(要求用函数调用方式解决),方法一(主函数在前) #include “stdio.h“ void pp(); main() int i; for(i=1;i=10;i+) pp(); void pp() prin

6、tf(“*n“);,方法二(主函数在后) #include “stdio.h“ void pp() printf(“*n“); main() int i; for(i=1;i=10;i+) pp(); ,void 表示这个函数无返回值;pp是函数名,农春耍桐温默昭呜涧庸懊帚券胺疼瞒未救腰毯拎津棉腕斧奥刑蛋登室淄经C语言课堂教程C语言课堂教程,【例5-2】用菜单的形式分别选择百钱买百鸡,九九表,水仙花数,分析:百钱买百鸡,九九表,水仙花数分别在项目三的例3-12、例3-11、例3-18中介绍过。本题就是将例3-12、例3-11、例3-18改为函数,然后在主函数中调用即可。所以本程序中有三个无参函

7、数,即sxhs()、jjb()、bqmbj()分别是求水仙花数、求九九表、求百钱买百鸡。,#include “stdio.h“ void sxhs(); void jjb(); void bqmbj(); main() int i; printf(“1.水仙花数n“); printf(“2.乘法九九表n“); printf(“3.百钱买百鸡n“); printf(“请选择13的菜单:“); scanf(“%d“, ,/*水仙花数*/ void sxhs() int i,a,b,c; printf(“n下列数字为水仙花数:n“); for(i=100;i=999;i+)a=i/100;b=(i-

8、a*100)/10;c=i-a*100-b*10;if (i=a*a*a+b*b*b+c*c*c) printf(“%d n“,i); ,/*乘法九九表*/ void jjb() int i,j; printf(“n乘法九九表n“); for(i=1;i=9;i+) for(j=1;j=i;j+)printf(“%-5d“,i*j); printf(“n“); ,/*百钱买百鸡*/ void bqmbj() int x,y,z; printf(“公鸡数 母鸡数 小鸡数n“); for(x=1;x=50;x+)for(y=1;y=33;y+)z=100-x-y; if(2*x+3*y+0.5*z

9、=100)printf(“%4d %4d %4dn“,x,y,z);,再句堵温桔辛皑国喇壁泉唇渤蝗汲葫即煮唬恬睫安伸郸枫瘩络澎忙墅沉碑C语言课堂教程C语言课堂教程,(二) 空函数,类型说明符 函数名() “小括弧”中是空的,“花括弧”中也是空的。此函数的没有任何功能,只是占一个位置而已。这样做的好处是将来扩充新的功能方便。,津鳖戳逝帘蝴厨使驳冠橙谜税糠剧巍闰殃慰诊变良弥陶榔择慈缠客爹涨班C语言课堂教程C语言课堂教程,(三)有参函数,1、有参函数的一般形式 类型说明符 函数名(形参类型 形参名,形参类型 形参名,形参类型 形参名) 声明部分 语句 return 语句 “小括弧”中的形参,可以有一

10、个,也可以有多个。函数体中的最后一个语句,通常是return语句,其作用是带回一个返回值。若没有返回值,则可以省略return语句。 2、有参函数的调用 与无参函数类似,只不过需要有形参。即:函数名(实参列表); 具体有以下二种:,函数类型 函数名(形参列表) 函数体; main() 语句; 函数名(实参列表); 语句;,函数类型 函数名(形参列表); main() 语句; 函数名(实参列表); 语句; 函数类型 函数名(形参列表) 函数体;,拦降丑面号泼撞搏吗腰痒硬婿考贰榆绥佣赶乱员卿意粘坤毛匹盐警啦么坪C语言课堂教程C语言课堂教程,【例5-3】求Cmn=m!/(n!(m-n)!),分析:如

11、果有一个函数jc(k),其功能是求k!,即jc(5)就是5!,jc(8)就是8!,jc(10)就是10!,显然对m!/(n!(m-n)!)来说,就是jc(m)/(jc(n)*jc(m-n)即可。,#include “stdio.h“ int jc(int k); /*函数说明语句*/ main() int m,n,c; printf(“请输入m,n的值:“); scanf(“%d%d“, ,#include “stdio.h“ /*阶乘的函数*/ int jc(int k) int i; int t=1; for(i=1;i=k;i+) t=t*i; return t; /*主函数*/ mai

12、n() int m,n,c; printf(“请输入m,n的值:“); scanf(“%d%d“, ,C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递。,镍史拣欲揪策桨姜植赢年草云咬郴扁染给扁又队凸装冻芯附饺武尧仅组萤C语言课堂教程C语言课堂教程,【例5-4】调用函数时的数据传递。输入二个数x,y,求二个数中的大数。,#include “stdio.h“ int max(int x,int y) int t,max; if(xy) t=x;x=y;y=t; max=x; printf(“在函数中的x,y的值为x=%d,y=%dn“,x,y); return max; ,main

13、() int x,y,mm; printf(“请输入x,y的值:“); scanf(“%d,%d“,尽管在主函数和max()函数中都定义了名为x,y的变量,但它们是属于不同的实体,它们仅仅是名称相同而已,就好比有二个人都叫“李小芳”,但一个是计算机班的“李小芳”,但另一个是国贸班的“李小芳”。,荒雹掌埠痪作膘淑惯硅冲敬判玻军抢瘦字淡喝锅阿离失阶示片霸帮率渐钥C语言课堂教程C语言课堂教程,任务2 统计小组若干门课程的总分及平均分,一、问题情景 一个班有40位学生(分成五个组,但每个组的人数不一样)参加了期终考试(考了三门课,分别是数学、语文、英语),请你用菜单的方式:求小组若干门课程的总分及平均

14、分。即完成本项目中的第二个要求。,分析:由图可分析出主函数的功能是设计一个菜单,由所选择的菜单调用相应的函数,但为了界面清晰,所以在程序的执行过程中出现:求小组的若干门成绩的平均分及总分的函数又调用了一条线的函数ppp()。,二、具体实现 #include “stdio.h“ /*输出线条函数*/ ppp() printf(“-n“); /*某个小组若干门课程的平均分与总分函数*/ void avgevery(int n,int km) int x,i,j; float s,avg; for(j=1;j=km;j+) s=0; printf(“请输入本小组第%d门考试成绩n“,j); ppp(

15、); for(i=1;i=n;i+) scanf(“%d“, ,/*主函数*/ main() int k,n,km; float sum,average; char ch; ppp(); printf(“t班级成绩统计n“); ppp(); printf(“1、统计小组一门课程的总分及平均分n“,n); printf(“2、统计小组若干门课程的总分及平均分n“); printf(“3、输出小组排序后三门课程的成绩单n“); printf(“请输入13之间的一个数:“); scanf(“%d“,剔计笑泉李漠吐翔瑶孰己斡墒腔熟炒贬婚潞辜种早闰修层壤精八雨文吕临C语言课堂教程C语言课堂教程,三、相关

16、知识,嵌套调用的定义:即在调用一个函数的过程中,可以再调用一个函数。,执行main函数中调用a1函数时,即转去执行a1函数;在a1函数中调用a2函数时,又去执行a2函数;a2函数执行完毕返回a1函数断点继续执行;a1函数执行完毕返回main函数的断点继续执行,直至程序执行结束。,途触病徽文彦荆砧腮果锋痒曙余尿眼到凹舞钎昆渠换瞅摇窝赐俐贸慷蹿掺C语言课堂教程C语言课堂教程,例题,【例5-5】函数的嵌套调用。求Cmn=m!/(n!(m-n)!)。要求用函数的嵌套方式完成。,分析:假设有3人参加, C负责计算jc(k), B向C要jc(k),然后计算Cmn;A负责输入m,n二个数,然后直接问B要Cm

17、n的结果。,#include “stdio.h“ /*c的程序为*/ int jc(int k) int i; int t=1; for(i=1;i=k;i+) t=t*i; return t; ,/*而B的程序为:*/ int cmn(int m,int n) int z; z= jc(m)/(jc(n)*jc(m-n); return z;,/*A的程序为:*/ main() int m,n,c; printf(“请输入m,n的值:“); scanf(“%d%d“, ,这个程序就是A要调用B,而B要调用C,所以就称为函数的嵌套。,频千拜榜颈女娥赡微严淳倪印兄柯针邹力刷汛磅儿怨演啤锚险戏跳丁

18、焉摸C语言课堂教程C语言课堂教程,main() int k,n,km; float sum,average; char ch; ppp(); printf(“t班级成绩统计n“); ppp(); printf(“1、统计小组一门课程的总分及平均分n“,n); printf(“2、统计小组若干门课程的总分及平均分n“); printf(“3、输出小组排序后三门课程的成绩单n“); printf(“请输入13之间的一个数:“); scanf(“%d“, ,现在回头分析本任务中的具体实现:主函数调用avgevery()函数,而avgevery()函数又调用ppp()函数,即属于函数的嵌套。,/*输出

19、线条函数*/ ppp() printf(“-n“); /*某个小组若干门课程的平均分与总分函数*/ void avgevery(int n,int km) int x,i,j; float s,avg; for(j=1;j=km;j+) s=0; printf(“请输入本小组第%d门考试成绩n“,j); ppp(); for(i=1;i=n;i+) scanf(“%d“, ,函数avgevery(int n,int km)有二个参数,因为需要传递二个值,即小组的人数及课程门数;,圭短雷隋钝么吨蛙栋澳宇吧源借扬局涟税茨裹肩瞻沧钞吩堰廓慈弯瞥锅永C语言课堂教程C语言课堂教程,四、知识扩展,函数的递

20、归调用就是在调用一个函数的过程中,又出现直接或间接地调用该函数本身。,【例5-5】猜年龄。5个小朋友排着队做游戏。第1个小朋友3岁,其余的年龄一个比一个大2岁,问第5个小朋友的年龄是多大?,分析:要知道第5个小朋友的年龄,则一定要知道第4个小朋友的年龄; 要知道第4个小朋友的年龄,则一定要知道第3个小朋友的年龄; 要知道第3个小朋友的年龄,则一定要知道第2个小朋友的年龄 要知道第2个小朋友的年龄,则一定要知道第1个小朋友的年龄 而第一个小朋友的的年龄是已知的,是3岁,这样倒推就能知道第5个小朋友的年龄。若用age(n)表示第n个小朋友的年龄,则有公式:,3 (n=1) age=age(n-1)

21、+2 (n1),#include “stdio.h“ int age( int n ) int c; if (n=1) c=10; else c=age(n-1)+2; return c; main() printf(“第五个小朋友的年龄为%dn“,age(5);,运行结果如下: 第五个小朋友的年龄为11,瑚淆又撵榨箔羽究创平扳犊埠琅啸湍邑援歇痕挨湍秉捧径长矩秸嗡在淡罪C语言课堂教程C语言课堂教程,【例5-6】求1+2+3+n的和。,分析:可写成,1 (n=1) sum(n)= sum(n-1)+n (n1),程序如下: #include “stdio.h“ int sum(int n) in

22、t y; if(n=1)y=1; else y=sum(n-1)+n; return y;,main() int n; scanf(“%d“,坚患盏蘑争稽株花脱必肘昂郝柯忿敏柴猜谭汁抬橙悸驱娥盂磁咱省弊寻鸦C语言课堂教程C语言课堂教程,任务3 输出排序后小组三门课成绩单,一、问题情景一个班有40位学生参加了期终考试(考了三门课),请输出学生排序后的成绩单。,分析:本项目要完成的功能相对比较多,为了使程序的结构清晰,我们可以将些项目进行分解: A:完成三门课成绩的输入;B:计算每个同学的总分与平均分;C:对三门课的成绩进行排序;D:输出函数 E:总负责,调用A、B、C、D即可。,二、具体实现(假

23、设本小组只有5个同学) #include “stdio.h“ #include “string.h“ #define N 5 /*输出线条函数*/ ppp() printf(“-n“); ,/*输入函数A*/ void input(int scoreN3,char nameN10) int i,j; for (i=0;iN;i+) printf(“第%d个同学的姓名及三门课的成绩:“,i+1); scanf(“%s“,namei); for(j=0;j3;j+) scanf(“%d“, ,/*计算每个同学的总分与平均分B*/ void sumavg(int scoreN3,float sum,

24、float avg) int i,j; for(i=0;iN;i+) for(j=0;j3;j+) sumi=sumi+scoreij; avgi=sumi/3.0; ,/*排序函数C*/ void px(int score3,float sum,float avg,char name10) int i,j; float t; char nn10; for(i=0;iN-1;i+) for(j=0;jN-1-i;j+) if(sumjsumj+1) t=sumj;sumj=sumj+1;sumj+1=t; t=avgj;avgj=avgj+1;avgj+1=t; /这个同学的所有数据都要交换

25、t=scorej0;scorej0=scorej+10;scorej+10=t; t=scorej1;scorej1=scorej+11;scorej+11=t; t=scorej2;scorej2=scorej+12;scorej+12=t; strcpy(nn,namej);strcpy(namej,namej+1);strcpy(namej+1,nn);,/*输出函数D*/ void print(int score 3,float sumr ,float avgr ,char name 10) int i,j; ppp(); printf(“输出排序后五个同学三门课的成绩:n“); pp

26、p(); printf(“序号t姓名t课1t课2t课3t总分t平均分n“); for (i=0;iN;i+) printf(“%d:t“,i+1); printf(“%st“,namei); for(j=0;j3;j+) printf(“%dt“,scoreij); printf(“%.0ft%.1ft“,sumri,avgri); printf(“n“); ppp(); ,/*主函数*/ main() int i,j; int scoreN3,t; char nameN10,nn10; float sumrN=0,avgrN; /每个同学的总分及平均分 /*调用输入记录函数*/ input(

27、score,name); /*调用计算总分与平均分的函数*/ sumavg(score ,sumr,avgr); /*调用排序函数*/ px(score,sumr,avgr,name); /*调用输出函数*/ print(score,sumr,avgr,name); ,新的知识点是:数组作为函数名时,是如何传递的。,屡元往肯契吁秦嘱闻妨橡线丈蒜改挥鬼主料旱履泊茫报爆阉窒嫩雀都横槐C语言课堂教程C语言课堂教程,(三)相关知识,使用数组名作为函数参数时,实参与形参都应使用数组名(或指针变量,见项目六)。当数组名作为函数实参时,不是把数组的值传递给形参,而是把实参数组的起始地址传递给形参数组,实参和

28、形参的地址是相同的,即当形参的值发生变化时,实参的值也发生了变化。,【例5-7】有二个学生A,B合力完成下面一个问题:求20个学生的平均成绩。他们的分工是这样的: B完成20个数的平均值,不负责数据的输入;A完成20个数的输入,然后问B要20个数的平均值后输出。,分析:B所做的是求平均值的average( )函数:已经有二十个数了,放在数组a20中,现在只要将这20个数相加后除以20,然后将结果交给A就行了。A所做的是主函数main():输入20个数,并将其放在数组中,调用B所做的函数,将输入的20个数传递给B,然后接过B的结果,并将其输出。,#include “stdio.h“ /*B所完成

29、的程序*/ float average(int b20) /b20表示从A中拿到的20个数 int i,s; float avg; s=0; for (i=0;i20;i+) s=s+bi; /将20个数相加 avg=s/20.0; return avg; /结果交给对方 ,/*A所完成的程序*/ main() int i,a20; /定义20个数,将存放20个数据 float avg; printf(“请输入20个同学的成绩n“); for (i=0;i20;i+) scanf(“%d“, ,锹孰嗓鹿迭悠献饿蕾狮起歧焕疾见珠初拳痉痢手件全眩澈愚贝如霄媒碳瞻C语言课堂教程C语言课堂教程,注意,

30、(4)形参数组也可不指定大小,或者在被调函数中另设一个参数,来传递数组的大小。如上面的程序可改为:,(1)数组名作为函数参数,应该在主调函数和被调函数中分别定义数组,如上面程序中的b是形参数组,a是实参数组,分别在其所在的函数中定义。,(2)实参数组与形参数组类型应当相同,如果不同,将会出错,如上面程序中的形参数组b是整型,实参数组a也是整型。,(3) 实参数组与形参数组大小可以不同也可以相同,C编译器对形参数组大小不做检查,只是将实参数组的首地址传递给形参数组。如上面程序中的float average(int b20)改为float average(int b10),并不影响程序的正常运行,

31、最后的结果也是相同的,我们甚至可以写成float average(int b ),即只要b是数组即可。,(5)形参数组与实参数组是占用同一个地址,所以是地址传递,即当形参的值发生变化时,实参的值也会跟着变化。,#include “stdio.h“ float average(int b ,int n) int i,s; float avg; s=0; for (i=0;in;i+) s=s+bi; /将20个数相加 avg=(float)s/n; return avg; /结果交给对方 ,矮俭证虐掇笼胖挡媒处尘腕获剿彤幻僧淄宣菠弯妹宪傅辖腥敷翅旧谦栓愧C语言课堂教程C语言课堂教程,【例5-8】

32、输入十个同学的成绩,要求用函数进行排序(降序)。即有二个学生A,B合力完成下面一个问题:将10个学生的成绩排序(降序)。他们的分工是这样的:A是完成主函数的编写:也就是完成10个数的输入,调用B编写的函数sort( ),就得到排序完的10个数,然后进行输出。B所编写的函数sort( )的功能是完成10个数的排序,不负责数据的输入。,#include “stdio.h“ void sort(int b); main() int a10,i; printf(“请输入十个同学的成绩n“); for(i=0;i10;i+) scanf(“%d“,void sort(int b) /*函数的功能就是选择

33、法进行排序*/ int i,j,t; for (i=0;i9;i+) for(j=i+1;j10;j+) if(bibj) t=bi;bi=bj;bj=t; ,睛脚擒恳功矫心齿涩耸津风步的均巨煌揍活僧蘸冬其尹晋轮傈诵迂胶摸督C语言课堂教程C语言课堂教程,任务4 举一反三,【例5-9】请仿照例5-2编写一个用菜单的形式分别选择1-100的奇数和,韩信点兵问题。(韩信点兵问题在例3-24),分析:1-100的奇数和,韩信点兵分别在项目三的习题、例3-24中介绍过。本题就是将它改为函数,然后在主函数中调用即可。所以本程序中有二个无参函数,即hxdb ( )、sum( )分别是韩信点兵、1-100的奇

34、数和。,#include “stdio.h“ void hxdb() /韩信点兵 long i; for(i=1;i+) if(i%3=2 ,void sum() /1-100的奇数和 int i,s=0; for(i=1;i=100;i=i+2) s=s+i; printf(“1-100奇数的和为%dn“,s); ,main() int i; printf(“1.韩信点兵n“); printf(“2.1-100的奇数和n“); printf(“请选择12的菜单:“); scanf(“%d“, ,锑猜棵卷糜摩甩噶涟比玛咕舷砚拿渗打荔裳屈寝瞅论蓄魁牙宙痒羚契倪极C语言课堂教程C语言课堂教程,【例

35、5-10】编写一个函数,编写x!,在主函数中调用它。,#include “stdio.h“ int jc(int x) int i,t=1; for(i=1;i=x;i+) t=t*i; return t; main() int n; printf(“请输入n的值“); scanf(“%d“, ,迂诛煽锁僻秧棠野耍佳啪置毕留这馒近最庶乏祸昔寓甫悠赶倦亲茸席屿最C语言课堂教程C语言课堂教程,【例5-11】试编程利用海伦公式求三角形面积。有三人负责完成。B负责判断能否构成三角形;C负责计算三角形的面积,而A是总负责,其职责是输入三个数,调用函数B看是否能构成三角形,若能,则调用c。,#includ

36、e “stdio.h“ #include “math.h“ /*B所完成的函数*/ int istriangle(int a,int b,int c) /判断能否构成三角形 int t; if(a+bc ,/*C所完成的函数*/ float area(int a,int b,int c) /计算三角形面积 float s,l; l=(a+b+c)/2.0; s=sqrt(l*(l-a)*(l-b)*(l-c); return s; ,/*A所完成的函数*/ main() int a,b,c; printf(“请输入三角形a,b,c的值n“); scanf(“%d,%d,%d“, ,撒洛魁娩逊观

37、农拢耗籽名普壳憨罚肺蒸骸畔述晕涩弃币撮有猩哭仅烬颓蓬C语言课堂教程C语言课堂教程,分析:若n=6,则6!=5!*6,5!=4!*5,4!=3!*4,3!=2!*3,2!=1!*2,而1!=1;所以,可以写成,【例5-12】用递归求n!。,#include long jc(int n) int i; long t; if (n=1)t=1; else t=jc(n-1)*n; return t; ,void main() int n; scanf(“%d“, ,1 (n=1) n!= (n-1)!*n (n1),茬宿刑瞄泰伞际兹垮智掂讼内受夺废枕岔好剔猾箱厦锦贼叁镰伺渤党叙龋C语言课堂教程C语言

38、课堂教程,【例5-13】将例5-8改成:在函数中进行 n个学生成绩从高到低排名。即有二个学生A,B合力完成下面一个问题:将n个学生的成绩进行排序(降序)。他们的分工是这样的:A是完全成主函数的编写:也就是完成n个数的输入,调用B编写的函数sort(),就得到排序后的n个数,然后进行输出。B所编写的函数sort()的功能是完成n个数的排序,不负责数据的输入。,#include “stdio.h“ void sort(int b,int n); main() int a100,i,n; printf(“请输入参加排序的学生数n=“); scanf(“%d“,void sort(int b,int

39、n) /函数的功能就是选择法进行排序 int i,j,t; for (i=0;in-1;i+) for(j=i+1;jn;j+) if(bibj) t=bi;bi=bj;bj=t; ,辕残勘发翱矗欲坍昏毯巢察颠艇感沂瞄熊硷逆特肢稗莫谩预道斟彻句联涎C语言课堂教程C语言课堂教程,【例5-14】将5-13题改成:在函数中进行 n个学生成绩排名。升序还是降序由函数中的style参数决定。,分析:在编写的函数sort( )中加入一个参数style,若style的值为a,则排列方式为升序,若style的值为d,则排列的方式为降序。,#include “stdio.h“ void sort(int b,int n,char style); main() int a100,i,n;char style; printf(“请输入参加排序的学生数n=“); scanf(“%d“,void sort(int b,int n,char style) /函数的功能就是选择法进行排序 int i,j,t; if (style=d) for (i=0;ibj) t=bi;bi=bj;bj=t; ,锣弄定阉裹葡根衔遁谴琼及学钮蚂稼纤闪辞掌吠习鲜寞卖脐淖辙灸憨抨兹C语言课堂教程C语言课堂教程,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报