实验10--指针2-(修复的).doc
《实验10--指针2-(修复的).doc》由会员分享,可在线阅读,更多相关《实验10--指针2-(修复的).doc(21页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 C语言程序设计 实验报告实验时间: 6月7号 实验班级: 计算机双学位1501 实验报告总份(片)数: 1 份(片)实验教师: 饶东宁 计算机 学院 工一 实验室广东工业大学 C语言程序设计 实验报告实验题目: 实验10 实验时间: 6月7号 实验班级: 双学位1501 实验人学号: 3213010359 实验人姓名: 梁雪卿 实验教师: 饶东宁 计算机 学院 工一 实验室广东工业大学实验10 指针21 实验目得(1) 进一步掌握指针得应用(2) 能正确使用数组得指针与指向数组得指针变量(3) 能正确使用字符串得指针与指向字符串得指针变量(4) 了解指向指针得指针得用法2 实验内容根据题目要
2、求,编写程序(要求用指针处理),运行程序,分析结果,并进行必要得讨论分析。(1) 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3得人退出圈子,问最后留下得就是原来得第几号得人。输入人数n算法说明:指针指向数组开头for i=0 to i=n1当mn1输出结果*(p+i)=i+1i=0 k=0 m=0真 *(p+1)0 假k+真 k=3 假*(p+i)=0k=0m+i+真 i=n 假i=0 当*p=0 p+程序清单:#include int mainint i,k,m,n,num50,*p;scanf(n=%d,&n);p=num;for(i=0;in;i+)*(p+i
3、)=i+1;i=0;k=0;m=0;while(mn1)if(*(p+1)!=0) k+;if(k=3)*(p+i)=0;k=0;m+;i+;if(i=n) i=0;while(*p=0) p+;printf(The last one is NO、%dn,*p);return 0;运行结果:分析与思考:以1到n为序给每个人编号,i为每次循环时计数变量,k为按1,2,3报数时得计数变量,m为退出人数,当退出人数比n1少时执行循环体,对推村恩编号为0,报数到尾i恢复为0,循环继续。(2) 将一个5*5得矩阵(二维数组)中最大元素放在中心,4个角分别放4个最小得元素(顺序为从左到右,从上到下依次从小
4、到大存放),写一函数实现之。用main函数调用。算法说明:定义a55,*p,I,jfor i=0 to i=4for j=0 to j=4 输入aijp=&a00调用函数change(p)for j=0 to j=4for i=0 to i=4输出aijchange(int *p)定义 i,j,temp,*pmax,*pminpmax=p pmin=pfor i=0 to i=4 for j=i to j=4temp=*(p+12) *(p+12)=*pmax *pmax=temptemp=*p *p=*pmin *pmin=temp pmin=p+1for i=0 to i=4/真 *pma
5、x*(p+5*i+j) 假pmin=p+5*i+jfor j=0 to j=4continue真 i=0&j=0 假真 *pmin*(p+5*i+j) 假pmin=p+5*i+jtemp=*pmin *pmin=*(p+4) *(p+4)=temp pmin=p+1for i=0 to i=4for j=0 to j=4真 (i=0&j=0)|(i=0&j=4) 假temp=*pmin *pmin=*(p+20) *(p+20)=temp pmin=p+1pmin=p+5*i+j真 *pmin*(p+5*i+j) 假continuefor i=0 to i=4for j=0 to j=4con
6、tinue真 (i=0&j=0)|(i=0&j=4)|(i=4&j=0) 假真 *pmin*(p+5*i+j) 假temp=*pmin*pmin=*(p+24)*(p+24)=temppmin=p+5*i+j程序清单:#include int mainvoid change(int *p);int a55,i,j,*q;for(i=0;i5;i+)for(j=0;j5;j+)scanf(%d,&aij);q=&a00;change(q);for(i=0;i5;i+)for(j=0;j5;j+)printf(%d ,aij);printf(n);return 0;void change(int
7、*p)int i,j,temp; int *pmax,*pmin;pmax=p;pmin=p;for(i=0;i5;i+)for(j=0;j5;j+)if(*pmax*(p+5*i+j) pmin=p+i*5+j;temp=*(p+12);*(p+12)=*pmax;*pmax=temp;temp=*p;*p=*pmin;*pmin=temp;pmin=p+1;for(i=0;i5;i+)for(j=0;j*(p+5*i+j) pmin=p+5*i+j;temp=*pmin;*pmin=*(p+4);*(p+4)=temp;pmin=p+1;for(i=0;i5;i+)for(j=0;j*(p
8、+5*i+j) pmin=p+5*i+j;temp=*pmin;*pmin=*(p+20);*(p+20)=temp;pmin=p+1;for(i=0;i5;i+)for(j=0;j*(p+5*i+j) pmin=p+5*i+j;temp=*pmin;*pmin=*(p+24);*(p+24)=temp;运行结果:分析与思考:change函数实现元素值交换。找出最大最小之,最大值与中心元素呼唤,最小值与左上角得元素互换。找出全部元素中得次小值,第三小值,第四小值,分别与剩下得三个角互换。元素地址均以元素做单位得地址。(3) 有一个班4个学生,5门课程。1, 求第一门课程得平均分。2, 找出有两
9、门以上课程不及格得学生,输出她们得学号与全部课程成绩及平军成绩。3, 找出平均成绩在90分以上或全部课程成绩在85分以上得学生。分别编3个函数实现以上3个要求。定义score45,aver4,*pscore,*paver,course510,(*pcourse)10pcourse=coursefor i=0 to i=4算法说明:输入courseifor i=0 to i=4输出courseipscore=&score00pnum=&numfor i=0 to i=3输入pnum+ifor j=0 to j=4输出pscore+5*i+jpaver &aver0调用avsco(pscore,p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 10 指针 修复
限制150内