二维数组的实验报告.doc_第1页
二维数组的实验报告.doc_第2页
二维数组的实验报告.doc_第3页
二维数组的实验报告.doc_第4页
二维数组的实验报告.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高级语言程序设计实验报告班级: 0900 姓名: 学号: 09006 课程名称高级语言程序设计实验项目一级指针与一维数组变成及函数编程练习实验项目类型验证演示综合设计指导教师李养群成 绩一、实验目的(1) 掌握一级指针的定义与使用。(2)掌握一维数组的定义与使用,理解数组的长度与下标的范围。(3)正确使用流程控制语句,掌握指针法与下标法访问数组元素的方法。(4)掌握正确的函数定义,调用,会正确设置形式参数,理解传值与传地址的不同,运用函数实现模块化程序设计。(5)理解各种不同存储类别的作用域。(6)进一步熟悉调试器的使用,会利用调试器进行查错改错,会跟踪程序运行的每一步,观察变量的变化情况。二、实验指导1.在主函数中定义double array10,并完成下面操作。从键盘读入10个实数,保存到array数组中,用&arrayi或array+i来表示元素地址。打印这10个元素及其对应的地址,通过下标法访问所有的元素,分别找出这组数的最大值,最小值,计算平均值并输出,对这10个数自选某种方法进行由小到大的排序,并输出排序后的结果。2.在main()中定义一个一维数组,从键盘读入数组元素,定义下列函数并在主函数中对各函数进行调用和测试。各自定义函数原型及功能分别如下:A.打印函数,输出整个数组,数组名array,数组长度length,无返回值。B.求数组的平均值,数组名array,数组长度length,返回数组的平均值。C.寻找数组中的最大元素,数组名array,数组长度length,返回数组的最大长度。D.查找函数,数组名array,数组长度length,待查找的数x,返回数组元素值等于x的元素下标,查找不到则返回-1.E.排序函数,将数组中的元素按从大到小的顺序排列,数组名array,数组长度length,无返回值。在实际环境下编写程序的时候,没有必要输完了所有的代码再进行测试,较好的做法是:每编一个函数,就在main()函数中调用该函数进行测试,确认无误后再对另一个函数定义的调用。这样一方面可以保持比较清晰的思路,另一方面也可以在定位错误时缩小查找的范围,从而发挥结构化程序设计的长处。三、实验过程原始记录(数据、图表、计算等)1,实验1 (1)使用数组#includeint main() int i,j; double array10,max,min,sum,average,temp;printf(输入10个实数:n); for(i=0;i10;i+)scanf(%5lf,&arrayi);printf(数组每个实数的值与地址如下:n);for(i=0;i10;i+) printf(%5f%15xn,arrayi,&arrayi);max=min=array0;sum=array0;for(i=1;i10;i+)sum+=arrayi;if(maxarrayi)min=arrayi; average=sum*1.0/10;printf(数组的最大值与最小值,平均值如下n);printf(%5f%15f%15fn,max,min,average); for(i=0;i9;i+)for(j=i+1;j10;j+) if(arrayjarrayi) temp=arrayi; arrayi=arrayj; arrayj=temp;printf(数组从小到大的排列顺序为:n); for(i=0;i10;i+)printf(%5g,arrayi);printf(n);return 0;实验结果: (2)使用自定义指针#includeint main()int i,j; double array10,max,min,sum,average,temp,*p=array;printf(输入10个实数:n); for(i=0;i10;i+)scanf(%5lf,&pi);printf(数组每个实数的值与地址如下:n);for(i=0;i10;i+) printf(%5f%15xn,pi,&pi);max=min=p0;sum=p0;for(i=1;i10;i+)sum=sum+pi;if(maxpi)min=pi; average=sum/10;printf(数组的最大值与最小值,平均值如下n);printf(max=%5fn,max);printf(min=%5fn,min);printf(average=%5fn,average); for(i=0;i9;i+)for(j=i+1;j10;j+) if(*(p+j)*(p+i) temp=*(p+j); *(p+j)=*(p+i); *(p+i)=temp; printf(数组从小到大的排列顺序为:n); for(i=0;i10;i+)printf(%5g,pi);return 0;实验结果:2,实验2#includevoid Print(int array,int length);double Average(int array,int length);int GetMax(int array,int length);int Retrieve(int array,int length,int x);void Sort(int array,int length);int main() int a100,i,n,k;do printf(输入数组的元素个数:n); scanf(%d,&n);while(n100);for(i=0;in;i+) scanf(%d,&ai);printf(数组的数据输出为:n); Print(a,n);printf(n);printf(数组的数据的平均值为:n);printf(%g,Average(a,n);printf(n);printf(数组的数据最大值为:n); printf(%d,GetMax(a,n);printf(n); printf(输入需要查找的数据:n);scanf(%d,&k);printf(数据的位置为: n);printf(%d,Retrieve(a,n,k);printf(n); printf(数组的从小到大的顺序为:n); Sort(a,n);printf(n);void Print(int array,int length) for(int i=0;ilength;i+)printf(%5d,arrayi);double Average(int array,int length) int sum=0;double aver;for(int i=0;ilength;i+)sum+=arrayi;aver=sum*1.0/length;return aver;int GetMax(int array,int length) int max=array0;for(int i=1;ilength;i+) if(maxarrayi) max=arrayi;return max;int Retrieve(int array,int length,int x) int i=0;while(ilength)if(x=arrayi)break;i+;if(ilength)return i;elsereturn -1;void Sort(int array,int length)for(int i=0;ilength-1;i+)for(int j=i+1;jlength;j+)if(arrayjarrayi)int temp=arrayj; arrayj=arrayi;arrayi=temp;for

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论