一维数组的应用2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一维数组的应用一一、实验目的1、掌握数组的概念,并弄清数组的存储结构。2、掌握一维数组的定义、赋值和输入输出的方法。3、学会与数组有关的算法。二、实验要求1、根据范例编写C++源程序。2、学会使用数组以及数组做为函数参数的应用。3、首先在E盘创建一个以学号姓名命名的文件夹(若已经有就不要创建)。接下来要创建的C++源程序都保存在该文件夹中,实验结束后要提交,建议实验结束将该文件夹保存在自己的u盘上作为学习资料。4、打开VC6.0编译器,创建工程(如果工程已经创建只要打开,在win7.0中按钮打开文件,按钮添加到工程)三、实验过程(注意文件名按以下要求)1、新建源程序prog9_1.c,程序的功能是:30个元素的数组采用循环方式依次给数组元素赋偶数2、4、6、…,然后按每行10个数逆序输出。请参考以下的程序代码。提示:(1)运行结果如下图所示:2、新建源程序prog9_2.c,程序的功能是:有10个学生的数学成绩存放在数组score中,请分别输入10个学生的成绩。输出10个学生的成绩。请将以下的程序代码改写成模块化程序,其中包含三个函数:①主函数:voidmain()②数组输入函数:voidarrin(inta[],intn)③数组输出函数:voidarrout(inta[],intn)。主函数中定义数组score,调用arrin()函数与arrout()函数。#includestdio.h#defineM10voidmain(){intscore[M];inti;printf(Enter10score:);for(i=0;iM;i++)//输入数组scanf(%d,&score[i]);printf(output10score:);for(i=0;iM;i++)//输出数组printf(%3d,score[i]);putchar('\n');}提示:(1)运行结果如下图所示:3、新建源程序prog9_3.c,程序的功能是:数组输入函数:给主函数中定义的数组输入若干大于或等于0的整数,用负数作为输入结束标志;数组输出函数:输出该数组中的数据,每行输出5个数。拷贝以下的程序代码,请勿改动main()函数内容,仅在arrin()与arrout函数的花括号中填入所编写的若干语句。(参考课本p117例9.2)#includestdio.h#defineM100intarrin(int[]);voidarrout(int[],int);voidmain(){ints[M],k;printf(input:\n);k=arrin(s);//k表示s数组实际元素个数printf(output:\n);arrout(s,k);}intarrin(inta[]){}voidarrout(inta[],intn){}提示:(1)运行结果如下图所示:4、新建源程序prog9_4.c,程序的功能是:定义一个含有15个元素的数组,并编写函数分别完成以下操作:(1)调用C库函数中的随机函数给所有元素赋以0~49的随机数;(2)输出数组元素中的值,每行输出5个数;拷贝以下的程序代码,请勿改动main()函数内容,仅在arrin()与arrout()的花括号中填入所编写的若干语句。(参考课本p121例9.4)#includestdio.h#includestdlib.h#defineM15voidarrin(int[],int);voidarrout(int[],int);voidmain(){intx[M];arrin(x,M);printf(output:\n);arrout(x,M);}voidarrin(inta[],intn){}voidarrout(inta[],intn){}提示:(1)运行结果如下图所示:5、新建源程序prog9_5.c,程序的功能是:一维数组求最小值(由用户任意输入10个数据求其中的最小值)。拷贝以下的程序代码,请勿改动main()函数内容,仅在arrin()、arrout()与min()的花括号中填入所编写的若干语句。其中min函数返回a数组的最小值。#includestdio.h#defineM10voidarrin(int[],int);voidarrout(int[],int);intmin(int[],int);voidmain(){inta[M],m;printf(input%dnum:,M);arrin(a,M);printf(output%dnum:,M);arrout(a,M);m=min(a,M);printf(min=%d\n,m);}voidarrin(inta[],intn){}voidarrout(inta[],intn){}intmin(inta[],intn){}提示:(1)运行结果如下图所示:7、新建源程序prog9_6.c,程序的功能是:用选择法对数组中的数进行排序(按由大到小顺序)。。拷贝以下的程序代码,请勿改动main()函数内容,仅在arrsort()的花括号中填入所编写的若干语句。参考课本p127例9.9。#includestdio.h#defineNUM6voidarrsort(int[],int);voidarrout(int[],int);main(){inta[NUM]={5,7,4,2,8,6};arrout(a,NUM);arrsort(a,NUM);arrout(a,NUM);}voidarrsort(inta[],intn){}voidarrout(inta[],intn){inti;for(i=0;in;i++)printf(%d,a[i]);putchar('\n');}提示:(1)运行结果如下图所示:8、新建源程序prog9_7.c,程序的功能是:用冒泡法对数组中的数进行排序(按由小到大顺序)。。拷贝以下的程序代码,请勿改动main()函数内容,仅在arrsort()的花括号中填入所编写的若干语句。#includestdio.h#defineNUM6voidarrsort(int[],int);voidarrout(int[],int);main(){inta[NUM]={5,7,4,2,8,6};arrout(a,NUM);arrsort(a,NUM);arrout(a,NUM);}voidarrsort(inta[],intn){}voidarrout(inta[],intn){inti;for(i=0;in;i++)printf(%d,a[i]);putchar('\n');}提示:(1)运行结果如下图所示:一维数组的应用二(以下的作业请课后完成,并将作业发到我邮箱,或者写在作业纸上,下节课交给我)0、新建源程序prog9_26.c,程序的功能是:数组point中存放着m个人的成绩,请编写函数fun(),它的功能是返回高于平均分的人数,并将高于平均分的分数放在high所指的数组中。例如当point数组中的数据为{50,60,65,70,75,80,88,90,95},函数返回值的人数应该是5,high中的数据应该是{75,80,88,90,95}注意:部分源程序已经给出,请勿改动main()函数的内容,仅在fun()函数的花括号中填入所编写的若干语句。#includestdio.hintfun(intpoint[],intm,inthigh[]){}voidmain(){inti,n,high[9];intpoint[9]={50,60,65,70,75,80,88,90,95};n=fun(point,9,high);printf(hightotheaveragescoreare:);for(i=0;in;i++)printf(%3d,high[i]);putchar('\n');}提示:(1)运行结果如下图所示:1、新建源程序prog9_27.c,程序的功能是:请完成习题9.27编程题(书p145)。拷贝以下的程序代码,请勿改动main()函数内容,仅在main()的花括号中填入所编写的若干语句。(参考课本p123例9.6)#includestdio.h#defineN10main(){charch;intnum[N]={0},i;printf(Enterdigitalcharacter:);//此入填入代码}提示:(1)运行结果如下图所示:2、新建源程序prog9_28.c,程序的功能是:请完成习题9.28编程题(书p145)。拷贝以下的程序代码,请勿改动main()函数内容,仅在arrout()、arrdel()与getindex()的花括号中填入所编写的若干语句。(参考课本p125例9.8)#includestdio.h#defineNUM10/*假定数组含有10个元素*/intarrdel(int[],int,int);/*函数说明语句*/voidarrout(int[],int);/*函数说明语句*/intgetindex(intn);main()/*用置初值的方法给数组置数*/{intn,d,a[NUM]={21,22,23,24,25,26,27,28,29,30};n=NUM;printf(Outputprimarydata:\n);/*输出原始数据*/arrout(a,n);d=getindex(n);n=arrdel(a,n,d);printf(Outputthedataafterdelete:\n);/*输出删除后的数据*/arrout(a,n);}voidarrout(intw[],intm)//数组输出{}intarrdel(intw[],intn,intk)/*删除k下标的数组元素,返回删除后数组元素个数*/{}intgetindex(intn)/*输入指定的下标值,若指定的下标值落在数据所在下标范围内时,返回该下标值*/{}提示:(1)运行结果如下图所示:3、新建源程序prog9_29.c,程序的功能是:请完成习题9.29编程题(书p145)。拷贝以下的程序代码,请勿改动main()函数内容,仅在arrout()与odds()的花括号中填入所编写的若干语句。#includestdio.h#defineNUM10intodds(int[],int,int[]);voidarrout(int[],int);main(){intn,d,a[NUM]={21,22,23,24,25,26,27,28,29,30},b[NUM];n=NUM;printf(Outputprimarydata:\n);/*输出原始数据*/arrout(a,n);n=odds(a,n,b);printf(Outputtheodddata:\n);/*输出奇数数据*/arrout(b,n);}voidarrout(inta[],intan)//输出a数组数据,an为a数组元素个数{}intodds(inta[],intan,intb[])//将a数组中的奇数放到b数组中,an为a数组元素个数{}提示:(1)运行结果如下图所示:4、新建源程序prog9_31.c,程序的功能是:请完成习题9.31编程题(书p145)。拷贝以下的程序代码,请勿改动main()函数内容,仅在arrout()与insert()的花括号中填入所编写的若干语句。#includestdio.h#defineNUM10intodds(int[],int,int[]);voidarrout(int[],int);/*函数说明语句*/main()/*用置初值的方法给数组置数*/{intn,x,a[NUM]={21,22,23,24,25,26,27,28,29,30};n=NUM;printf(Outputprimarydata:\n);/*输出原始数据*/arrout(a,n);printf(Enterthex:);scanf(%d,&x);/*输入x*/n=insert(a,x,n);printf(Outputthe

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功