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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数组指针和函数综合编程二Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数组指针和函数综合编程二Word格式文档下载.docx

1、【思考题】 请读者思考: 编写一个能计算任意m行n列的二维数组中的最大值,并指出其所在的行列下标值的函数,能否使用二维数组或者指向二维数组的行指针作为函数参数进行编程实现呢?为什么? 请读者自己分析动态内存分配方法(题目要求中的程序4)和二维数组(题目要求中的程序3)两种编程方法有什么不同?使用动态内存分配方法存储学生成绩与用二维数组存储学生成绩相比,其优点是什么?三:程序源代码:程序1:#include #define STU 40void Findmax(float score,long num,int n,float *pMaxscore,long *pMaxnum;main(float

2、 scoreSTU,Maxscore;long numSTU,Maxnum;int i,n;printf(Please enter the total number:;scanf(%d,&n;Please enter the number and score:nfor(i=0;i %ld%fnumi,&scorei;Findmax(score,num,n,&Maxscore,&Maxnum;Maxnum=%ld,Maxscore=%.0fn,Maxnum,Maxscore;void Findmax(float score,long num,int n,float *pMaxscore,long

3、 *pMaxnumint i;*pMaxnum=num0;*pMaxscore=score0;for(i=1;if(scorei*pMaxscore*pMaxscore=scorei;*pMaxnum=numi;题目2:#define CLASS 3#define STU 4int Findmax(int scoreSTU,int Maxscore,int *prow,int *pcol;int scoreCLASSSTU,Maxscore;int i,j,row,col;Please enter the score of the class:%dn,i+1;for(j=0;j scoreij

4、;Maxscore=Findmax(score,Maxscore,&row,&col;Maxscore=%d,class=%d,number=%dn,Maxscore,row+1,col+1;int Findmax(int scoreSTU,int Maxscore,int *prow,int *pcolint i,j;Maxscore=score00;*prow=0;*pcol=0;if(scoreijMaxscoreMaxscore=scoreij;*prow=i;*pcol=j;return(Maxscore;程序3:int Findmax(int *p,int m,int n,int

5、*prow,int *pcol;int scoreCLASSSTU,maxscore,i,j,row,col;maxscore=Findmax(*score,CLASS,STU,&,maxscore,row+1,col+1;int Findmax(int *p,int m,int n,int *prow,int *pcolint i,j,max;max=p0;if(*(p+i*n+jmaxmax=*(p+i*n+j;return(max;题目4:int FindMax(int *p,int m,int n,int *pRow,int *pCol;int maxScore,row,col,i,j

6、,m,n,*pScore=NULL;Please enter the array size m,n:%d,%dm,&pScore=(int*calloc(m*n,sizeof(int;if(pScore=NULLNo enough memory!exit(0;,pScore+i*n+j;maxScore=FindMax(pScore,m,n,&,maxScore,row+1,col+1;int FindMax(int *p,int m,int n,int *pRow,int *pCol*pRow=0;*pCol=0;*pRow=i;*pCol=j; 四:运行结果、分析与讨论:51000 562

7、000 863000 784000 655000 89Maxnum=5000,Maxscore=89Press any key to continue.167 87 76 87256 78 87 98356 76 45 99程序4中我首先编辑如下int maxScore,row,col,i,j,m,n;int *pScore=NULL;程序不能正常运行,而当我把程序改成main(就可以正常运行,这个原因我还没有琢磨清楚。希望和老师探讨一下Maxscore=99,class=3,number=4 请按任意键继续. . .67 78 67 9867 56 87 67100 78 67 76Maxs

8、core=100,class=3,number=13,478 67 56 8756 87 78 9967 78 56 100Maxscore=100,class=3,number=4思考题1:如果使用二维数组,则无法直接通过return语句返回三个变量的值,只能返回一个变量(即最大值的数值)的值,故无法实现其实验目的。而如果使用指向二维数组的行指针作为函数参数进行编程,由于未能返回具体列指针变量的值,导致最多只能输出最大值和相应行的数,故无法实现其实验目的。思考题2:程序4与程序3间对于内存的分配存在一定差异。程序4采用动态内存分配的方法,可以根据需要,动态地对内存进行分配与回收。而程序3只能

9、预先定义内存分配,显得比较局限。动态内存分配,在程序执行的过程中动态地分配或者回收存储空间的分配内存,它不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。可以知道使用动态内存分配方法存储学生你成绩与用二维数组存储学生成绩相比:1、不需要预先分配存储空间;2、分配的空间可以根据程序的需要扩大或缩小。五:实验心得与体会:这次实验内容上比较多,而且对指针变量的要求也有可更高一步的提升。但是在编程过程中,我们也应该特别注意到二维数组的地址和指针的关系,这很重要。特别是对二维数组的行地址与列地址的定义上要注意具体的要求。此外,动态数组的优越性自己也要清楚,特别是它与静态数组的区别,这对提高程序优越性有很大帮助。在以后的编程中,尽量优化程序。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1