ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:406.50KB ,
资源ID:4492376      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4492376.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(实验10--指针2-(修复的).doc)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

实验10--指针2-(修复的).doc

1、《 C语言程序设计 》 实验报告 实验时间: 6月7号 实验班级: 计算机双学位1501 实验报告总份(片)数: 1 份(片) 实验教师: 饶东宁 计算机 学院 工一 实验室 广东工业大学 《 C语言程序设计 》 实验报告 实验题目: 实验10 实验时间: 6月7号 实验班级: 双学位1501 实验人学号: 3213010359 实验人姓名: 梁雪卿 实验教师: 饶东宁 计算机 学院 工一 实验室 广东工

2、业大学 实验10 指针2 1 实验目得 (1) 进一步掌握指针得应用 (2) 能正确使用数组得指针与指向数组得指针变量 (3) 能正确使用字符串得指针与指向字符串得指针变量 (4) 了解指向指针得指针得用法 2 实验内容 根据题目要求,编写程序(要求用指针处理),运行程序,分析结果,并进行必要得讨论分析。 (1) 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3得人退出圈子,问最后留下得就是原来得第几号得人。 输入人数n 算法说明: 指针指向数组开头 for i=0 to i=n1 当m

3、 输出结果 *(p+i)=i+1 i=0 k=0 m=0 真 *(p+1)≠0 假 k++ 真 k=3 假 *(p+i)=0 k=0 m++ i++ 真 i=n 假 i=0 当*p=0 p++ 程序清单: #i

4、nclude int main { int i,k,m,n,num[50],*p; scanf("n=%d",&n); p=num; for(i=0;i

5、 return 0; } 运行结果: 分析与思考: 以1到n为序给每个人编号,i为每次循环时计数变量,k为按1,2,3报数时得计数变量,m为退出人数,当退出人数比n1少时执行循环体,对推村恩编号为0,报数到尾i恢复为0,循环继续。 (2) 将一个5*5得矩阵(二维数组)中最大元素放在中心,4个角分别放4个最小得元素(顺序为从左到右,从上到下依次从小到大存放),写一函数实现之。用main函数调用。 算法说明: 定义a[5][5],*p,I,j for i=0 to i=4 for j=0 to j=4 输入a[i][j] p=&a[0]

6、[0] 调用函数change(p) for j=0 to j=4 for i=0 to i=4 输出a[i][j] change(int *p) 定义 i,j,temp,*pmax,*pmin pmax=p pmin=p for i=0 to i=4 for j=i to j=4 temp=*(p+12) *(p+12)=*pmax *pmax=temp temp=*p *p=*pmin *pmin=temp pmin=p+1 for i=0 to i=4 / 真

7、 *pmax<*(p+5*i+j) 假 pmax=p+5*i+j 真 *pmin>*(p+5*i+j) 假 pmin=p+5*i+j for j=0 to j=4 continue 真 i==0&&j==0 假 真 *pmin>*(p+5*i+j) 假 pmin=p+5*i

8、j temp=*pmin *pmin=*(p+4) *(p+4)=temp pmin=p+1 for i=0 to i=4 for j=0 to j=4 真 (i==0&&j==0)||(i==0&&j==4) 假 temp=*pmin *pmin=*(p+20) *(p+20)=temp pmin=p+1 pmin=p+5*i+j 真 *pmin>*(p+5*i+j) 假 continue for i=0 to i=4 for j=0 to j=4

9、 continue 真 (i==0&&j==0)||(i==0&&j==4)||(i==4&&j==0) 假 真 *pmin>*(p+5*i+j) 假 temp=*pmin *pmin=*(p+24) *(p+24)=temp pmin=p+5*i+j 程序清单: #include int main { void change(int *p); int a[5][5],i,j,*q; for(i=0;i<

10、5;i++) for(j=0;j<5;j++) scanf("%d",&a[i][j]); q=&a[0][0]; change(q); for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%d ",a[i][j]); printf("\n"); } return 0; } void change(int *p) { int i,j,temp; int *pmax,*pmin; pmax=p; pmin=p; for(i=0;i<5;i++) { for(j=0;j<5;j++) { if(*pmax<*(p

11、i*5+j)) pmax=p+i*5+j; if(*pmin>*(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;i<5;i++) { for(j=0;j<5;j++) {if(i==0&&j==0) continue; if(*pmin>*(p+5*i+j)) pmin=p+5*i+j;} } temp=*pmin; *pmin=*(p+4); *(p+4)=tem

12、p; pmin=p+1; for(i=0;i<5;i++) { for(j=0;j<5;j++) {if((i==0&&j==0)||(i==0&&j==4)) continue; if(*pmin>*(p+5*i+j)) pmin=p+5*i+j;} } temp=*pmin; *pmin=*(p+20); *(p+20)=temp; pmin=p+1; for(i=0;i<5;i++) { for(j=0;j<5;j++) {if((i==0&&j==0)||(i==0&&j==4)||(i==4&&j==0)) continue; if(*pmin>*(p

13、5*i+j)) pmin=p+5*i+j;} } temp=*pmin; *pmin=*(p+24); *(p+24)=temp; } 运行结果: 分析与思考: change函数实现元素值交换。找出最大最小之,最大值与中心元素呼唤,最小值与左上角得元素互换。找出全部元素中得次小值,第三小值,第四小值,分别与剩下得三个角互换。元素地址均以元素做单位得地址。 (3) 有一个班4个学生,5门课程。 1, 求第一门课程得平均分。 2, 找出有两门以上课程不及格得学生,输出她们得学号与全部课程成绩及平军成绩。 3, 找出平均成绩在90分以上或全部课程成绩在85分以上得学生。

14、分别编3个函数实现以上3个要求。 定义score[4][5],aver[4],*pscore,*paver,course[5][10],(*pcourse)[10] pcourse=course for i=0 to i=4 算法说明: 输入course[i] for i=0 to i=4 输出course[i] pscore=&score[0][0] pnum=&num for i=0 to i=3 输入pnum+i for j=0 to j=4 输出pscore+5*i+j paver &aver[0] 调用avsco(

15、pscore,paver) 调用avcour1(pcourse,pscore) 调用fali2(pcourse,pnum,pscore,paver) 调用good(pcourse,pnum,pscore,paver) avsco sum=0、0 for j=0 to j=4 定义I,j,sum,average for i=0 to i=3 average=sum/5 *(paver+i)=average sum=sum+(*(pscore+5*i+j)) avcour1 定义I,sum,average1 sum=0、0 for i=

16、0 to i=3 sum=sum+(*(pscore+5*i)) average1= sum/4 输出*pcourse,average1 fali2 定义I,j,k,label for i=0 to i=4 输出course[i] for i=0 to i=3 label=0 for j=0 to j=4 真 *(pscore+5*i+j)<60、0 假 label++ 真 label>=2 假 输出num[i] for

17、k=0 to k=4 输出*(pscore+5*i+k) 输出aver[i] good 定义I,j,k,n for i=0 to i=4 输出course[i] for i=0 to i=3 n=o for j=0 to j=4 真 *(pscore+5*i+j)>85、0 假 n++ 真 n==5||(aver[i]>=90) 假 输出num[i] for k=0 to k=4 输出*(pscore+5*i+k)

18、 输出aver[i] 程序清单: #include int main {void avsco(float *,float *); void avcour1(char (*)[10],float *); void fali2(char course[5][10],int num[],float *pscore,float aver[4]); void good(char course[5][10],int num[4],float *pscore,float aver[4]); int i,j,*pnum,num[4]; float score

19、[4][5],aver[4],*pscore,*paver; char course[5][10],(*pcourse)[10]; printf("input course:\n"); pcourse=course; for(i=0;i<5;i++) scanf("%s",course[i]); printf("input NO、 and scores:\n"); printf("NO、"); for(i=0;i<5;i++) printf(",%s",course[i]); printf("\n"); pscore=&score[0][0]; pnum=&num[0

20、]; for(i=0;i<4;i++) {scanf("%d",pnum+i); for(j=0;j<5;j++) scanf("%f",pscore+5*i+j);} paver=&aver[0]; printf("\n\n"); avsco(pscore,paver); avcour1(pcourse,pscore); printf("\n\n"); fali2(pcourse,pnum,pscore,paver); printf("\n\n"); good(pcourse,pnum,pscore,paver); return 0; } void avsco(

21、float *pscore,float *paver) { int i,j; float sum,average; for(i=0;i<4;i++) {sum=0、0; for(j=0;j<5;j++) sum=sum+(*(pscore+5*i+j)); average=sum/5; *(paver+i)=average; } } void avcour1(char (*pcourse)[10],float *pscore) { int i; float sum,average1; sum=0、0; for(i=0;i<4;i++

22、) sum=sum+(*(pscore+5*i)); average1=sum/4; printf("course 1:%s average score:%7、2f\n",*pcourse,average1); } void fali2(char course[5][10],int num[],float *pscore,float aver[4]) { int i,j,k,label; printf(" ==============Student who is fail in two course========== \n"); printf("NO

23、 "); for(i=0;i<5;i++) printf("%11s",course[i]); printf(" average\n"); for(i=0;i<4;i++) {label=0; for(j=0;j<5;j++) if(*(pscore+5*i+j)<60、0) label++; if(label>=2) {printf("%d",num[i]); for(k=0;k<5;k++) printf("%11、2f",*(pscore+5*i+k)); printf("%11、2f\n",aver[i]);

24、} } } void good(char course[5][10],int num[4],float *pscore,float aver[4]) { int i,j,k,n; printf(" ==========Students whose score is good====== \n"); printf("NO、 "); for(i=0;i<5;i++) printf("%11s",course[i]); printf(" average\n"); for(i=0;i<4;i++) {n=0; for(

25、j=0;j<5;j++) if(*(pscore+5*i+j)>85、0) n++; if((n==5)||(aver[i]>=90)) {printf("%d",num[i]); for(k=0;k<5;k++) printf("%11、2f",*(pscore+5*i+k)); printf("%11、2f\n",aver[i]); } } } 运行结果: 分析与思考: num就是存放4个学生学号得一维数组,course就是存放5门课名字得二维字符数组,score就是存放4 个学生5门课成绩得二维数组,aver就是存放每个学生平

26、时成绩得数组。pnum就是指向num数组得指针变量,pave就是指向aver数组得指针变量。 (4) 用指向指针得指针得方法对n个字符串排序并输出。要求将排序单独写成一个函数。n与各整数在主函数中输入。最后在主函数中输出。 把n个字符串定义为二维数组str[N][LINEMAX] 定义指针数组pstr[N] for i=0 to i=N1 算法说明: pstr[i]=str[i] for i=0 to i=N1 输入字符串 p=pstr for i=0 to i=N1 输出排序后得字符串 调用函数sort(p,N)

27、 sort 定义i,j,*temp for i=0 to i=x1 for j=i+1 to j=x1 真 strcmp(*(p+1),*(p+j)>0) 假 temp=*(p+i) *(p+i)=*(p+j) *(p+j)=temp 程序清单: #include #include #define LINEMAX 20 #define N 5 int main { void sort(char **p,int x); int

28、 i; char **p; char *pstr[N]; char str[N][LINEMAX]; printf("输入5个字符串: "); for(i=0;i0) {term=* (p+i); * (p+i)=* (p+j); * (p+j)=term; } } } } 运行结果: 思考与分析: 二维数组定义就是不能包括变量,要定义宏;要给字符串留出足够得空间;调用字符串函数要包括头文件;用冒泡法对字符串排序。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服