资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C语言难点分析函数:对于函数最基本的理解是从那个叫main的单词开始的,一开始总会觉得把语句一并写在main里不是挺好的么,为什么偏择岀去。其实这是因为对函数还不够熟练,否则函数的运用会给我们编程带来极大的便利。我们要知道函数的返回值类型,参数的类型,以及调用函数时的形式。事先的函数说明也能起到一个提醒的好作用。所谓形参和实参,即在调用函数时写在括号里的就是实参,函数本身用的就是形参,在画流程图时用平行四边形表示传参。函数的另一个应用例子就是递归了,笔者开始比较头疼的问题,反应总是比较迟钝,按照老师的方法,把递归的过程耐心准确的逐级画出来,学习的效果还是比较好的,会觉得这种递归的运用是挺巧的,事实上,著名的八皇后.汉诺塔等问题都用到了递归。例子:longfun(intnlongs;if(n=lI|n=2s=2;elses=n-fun(n-l;returns;main(结果是3数组:printfId,fun(4;返回1T返回2分为一维数组和多维数组,其存储方式画为表格的话就会一目了然,其实就是把相同类型的变量有序的放在一起。因此,在处理比较多的数据时(这也是大多数的情况)数组的应用范围是非常广的。具体的实际应用不便举例,而且绝大多数是与指针相结合的,笔者个人认为学习数组在更大程度上是为学习指针做一个铺垫。作为基础的基础要明白几种基本操作:即数组赋值、打印、排序(冒泡排序法和选择排序法)、査找。这些都不可避免的用到循环,如果觉得反应不过来,可以先一点点的把循环展开,就会越来越熟悉,以后自己编写一个功能的时候就会先找出内在规律,较好的运用了。另外数组做参数时,一维的里可以是空的,二维的第一个里可以是空的但是第二个口中必须规定大小。冒泡法排序函数:voidbubble(inta,intninti,j,k;for(i=l,ifor(j=O;jaj+lk=aj;aj=aj+1;aj+l=k;选择法排序函数:voidsort(inta,intninti,j,k,t;for(i=0,in-1;i卄k=i;for(j=i+l;jif(akk=j;if(k!=it=a;a=ak;ak=t;折半査找函数(原数组有序):voidsearch(inta,intn,intintleft=0,right=nl,mid,flag=0;while(flag=0&(left=0&choice=0&choice=2fp=fopen(z,aadat,ib;for(i=0;i;i+fread(&a,sizeof(ST,1,fp;/*把文件中储存的信息逐个读到数组中去*/fclose(fp;(processchoice(a;/*前面提到的指向函数的指针,选择操作*/printf(n;Show(;printf(n?;scanf(,&choice;voidShow(printf(n*Choices:0Displaythedataformnl.Bubbleitaccordingtothetotalscoren2Searchn3Quit!n;voidOutput(ST*a/*将文件中存储的信息逐个输出*/inti,t=0;printf(NameChineseMathsPhysicsTotalXn;for(i=0;it=achinese+amaths+aphy;&total二t;printf(,z%4s%8d%8dao8d%8dn,z,a.name,a.Chinese,a.maths,a.phy,a.tota1;voidBubble(ST*a/*对数组进行排序,并输出结果*/inti,pass;STm;for(pass=O;pass;pass+for(i二0;i;i+i
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号