




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 (2009-9-24)一、 实验名称:数组。二、 实验目的:(1) 掌握C语言中一维数组、二维数组的定义方法; (2) 掌握字符数组与常用字符串处理函数的使用;(3) 掌握与数组有关的算法(如数组元素的排序);(4) 进一步熟悉Visual C+6.0开发环境下调试程序的基本步骤。三、 实验项目(必做题)本次实验要求同学们事先在纸介质上编好解决下面问题的源程序,然后才允许进实验室上机调试。(1) 定义1个一维数组:int arr10,然后从键盘输入10个整数,编程求出其最大值、最小值以及平均值,并在屏幕上打印输出。 提示:在一个循环体内用scanf函数输入10个数,然后再用一个循环处理数据处理。测试实例:输入:100 10 -125 -9 0 90 70 60 300 -250输出:max=300min=-250ave= 14.60注意:要求首先建立项目文件,然后建立源程序文件进行编辑、调试。(2) 定义两个字符数组:char str180, str280,其中字符串str1接受从键盘输入,然后编程将字符数组str1的内容逐个拷贝到字符数组str2中。(不允许使用库函数strcpy)提示:从键盘接受1个字符串输入str1后,使用一个循环将str1中字符逐个赋值给str2中的对应元素。测试实例:输入:Hello World!输出:Hello World!注意:要求首先建立项目文件,然后建立源程序文件进行编辑、调试。(3) 定义1个一维数组:int arr20,然后从键盘输入20个整数,使用冒泡法编程将该数组从小到大进行排序,并将排序后结果打印在屏幕上。提示:利用一个二重循环体实现冒泡排序(算法的基本思想参见教材P134)。测试实例:输入:100 10 -125 -9 0 90 70 60 300 -250 -72 39 48 22 83 159 142 -129 -24 539输出:-250 -129 -125 -72 -24 -9 0 10 22 39 48 60 70 83 90 100 142 159 300 539(4) 将20个数存放在一个数组中,首先使用选择法对这20个数按升序排列,并输出排序后的结果;然后从键盘输入一个数,要求用二分查找的方法找出该数在数组中的位置(即下标),如果该数不在数组中,则输出“无此数”。提示:首先利用一个二重循环实现选择排序;然后使用单重循环来实现二分查找。测试实例:输入:100 10 -125 -9 0 90 70 60 300 -250 -72 39 48 22 83 159 142 -129 -24 539输出:-250 -129 -125 -72 -24 -9 0 10 22 39 48 60 70 83 90 100 142 159 300 539输入:-129输出:17输入:301输出:无此数(5) 定义1个二维数组:int arr56,然后从键盘输入5行6列共30个整数,编程求出所有元素中的最大值、最小值及其下标,同时求出每行元素的平均值,并在屏幕上打印输出。提示:在一个二重循环体内用scanf函数输入30个数,然后再用一个二重循环处理数据处理。测试实例:输入:6 5 4 3 2 17 8 9 10 11 1213 14 15 16 17 1824 23 22 21 20 1930 29 28 27 26 25输出:Maximum:a40=30Minimum:a04=1;Average:Ave0= 3.50Ave1= 9.50Ave2=15.50Ave3=21.50Ave4=27.50四、 实验项目(选做题)(1) 课堂、以及教材中的一些示例程序。(2) 教材P152页开始习题:7.1-7.15。(1)#include void main() int i,max,min,a10; float s=0,k;for(i=0;i10;i+) scanf(%d,&ai);max=a0,min=a0;for(i=0;i=max) max=ai; if(ai=min) min=ai; s=s+ai;k=s/10;printf(max=%d min=%d k=%5.2fn,max,min,k);(2)#includevoid main() int i;char str180;char str280;gets(str1);for(i=0;i80;i+) str2i=str1i;printf(%s,str2);printf(n);(3)#includevoid main()int a20;int i,j,t;printf(please input 20 num:n);for(i=0;i20;i+)scanf(%d ,&ai);printf(n);for(j=0;j20;j+)for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;printf(the sorted num is:n);for(i=0;i20;i+) printf(%d , ai);printf(n);(4)#includevoid main() int i,j,x,min,a21,n,t,m,b,loca,flag=1,sign; char c; for(i=1;i=20;i+) scanf(%d,&ai); for(i=0;i=19;i+) min=i; for(j=i+1;jaj)min=j; x=ai; ai=amin; amin=x; for(i=1;i=20;i+) printf(%4d,ai); printf(n); while(flag) scanf(%d,&n); sign=0;t=0;b=19; if(na19) loca=-1; while(!sign)&(t=b) m=(b+t)/2; if(n=am) loca=m; printf(Has found %d,its position is %dn,n,loca); sign=1; else if(nam) b=m; else t=m; if(!sign|loca=-1) printf(can not fint %d.n,n); printf(continue or not(Y/N?); scanf(%c,&c); if(c=N|c=n) flag=0; (5)#includevoid main() int a56,max,min,b,c,d,e,i,j; float Ave5=0,0,0,0,0; for(i=0;i=4;i+) for(j=0;j=5;j+) scanf(%d,&aij); max=a00;min=a00; for(i=0;i=4;i+) for(j=0;jmax) max=aij;b=i;c=j; if(aijmin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论