文档库 最新最全的文档下载
当前位置:文档库 › 编程题71函数模板实现数组中查找元素

编程题71函数模板实现数组中查找元素

编程题71函数模板实现数组中查找元素
编程题71函数模板实现数组中查找元素

(1)请各位按上表格式,第一列不变,第二三列为各位根据题目填写

(2)允许的编程语言:选gc++,

(3)名称和描述两项请将文档第二列内容对应贴入系统中

(4)测试用例请各位自己添加,题目的最后已有描述,每个题目也说明了要给几组测试用例(5)其他选项可以自行设定,例如开启时间,结束时间,等等,需要大家逐步熟悉

数组名作为函数参数

杨振平

●数组元素作实参,对应的形参为变量,一次传递一个元素,采用值传递。 ●数组名作实参,对应的形参为一个数组,一次传递整个数组。 ●数组作参数,其参数传递可理解为形参数组与实参数组共用同一数组空间(即共用实参数组空间)。因此,在函数中,使用形参数组就是在使用实参数组,改变形参数组元素的值就是在改变实参数组元素的值,这一点与引用传递非常相似。

1.一维数组的传递 ?一维数组作形参的声明格式: <类型> <数组名>[] 其中,[]中可以省略数组的长度值。(可认为形参数组与实参数组长度相同) ?对应的实参应为同类型的一维数组名。(仅用数组名) 说明:为了使函数知道需要处理的数组元素的个数,通常给函数再传递一个表示元素个数的整型数。

数组名作为函数参数(续) 例如:一维数组名作为函数的参数。编写函数,计算一个整型数组中从第m个元素(m从0开始)开始的n个元素之和。函数设计: 函数原型:int fun(int b[],int m,int n); 功能:计算数组b中从第m个元素开始的n个元素之和。 主函数设计: 定义并初始化一个整型数组a。 测试1:fun(a,0,10);//求从第0个元素开始的10个元素之和 测试2:fun(a,3,5); //求从第3个元素开始的5个元素之和

int fun(int b[],int m,int n) { int i,s=0; for(i=m;i

C语言二维数组作为函数的参数

可以用二维数组名作为实参或者形参,在被调用函数中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如: void Func(int array[3][10]); void Func(int array[][10]); 二者都是合法而且等价,但是不能把第二维或者更高维的大小省略,如下面的定义是不合法的: void Func(int array[][]); 因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行多少列,不能只指定一维而不指定第二维,下面写法是错误的: void Func(int array[3][]);实参数组维数可以大于形参数组,例如实参数组定义为: void Func(int array[3][10]); 而形参数组定义为: int array[5][10]; 这时形参数组只取实参数组的一部分,其余部分不起作用。 对于数组int p[m][n]; 如果要取p[i][j]的值(i>=0 && i

C语言数组名作函数参数

数组名可以作函数的实参和形参。如: 01. main(){ 02. int array[10]; 03. /* …… */ 04. /* …… */ 05. f(array,10); 06. /* …… */ 07. /* …… */ 08. } 09. 10. f(int arr[],int n); 11. { 12. /* …… */ 13. /* …… */ 14. } array为实参数组名,arr为形参数组名。在学习指针变量之后就更容易理解这个问题了。数组名就是数组的首地址,实参向形参传送数组名实际上就是传送数组的地址,形参得到该地址后也指向同一数组。这就好象同一件物品有两个彼此不同的名称一样。 同样,指针变量的值也是地址,数组指针变量的值即为数组的首地址,当然也可作为函数的参数使用。 【例10-15】 01. float aver(float*pa); 02. main(){ 03. float sco[5],av,*sp; 04. int i; 05. sp=sco; 06. printf("\ninput 5 scores:\n"); 07. for(i=0;i<5;i++)scanf("%f",&sco[i]); 08. av=aver(sp); 09. printf("average score is %5.2f",av);

10. } 11. float aver(float*pa){ 12. int i; 13. float av,s=0; 14. for(i=0;i<5;i++) s=s+*pa++; 15. av=s/5; 16. return av; 17. } 【例10-16】将数组a中的n个整数按相反顺序存放。 算法为:将a[0]与a[n-1]对换,再a[1]与a[n-2] 对换……,直到将a[(n-1/2)]与a[n-int((n-1)/2)]对换。今用循环处理此问题,设两个“位置指示变量”i和j,i的初值为0,j的初值为n-1。将a[i]与a[j]交换,然后使i的值加1,j 的值减1,再将a[i]与a[j]交换,直到i=(n-1)/2为止,如图所示。 程序如下: 01. void inv(int x[],int n)/*形参x是数组名*/{ 02. int temp,i,j,m=(n-1)/2; 03. for(i=0;i<=m;i++){ 04. j=n-1-i; 05. temp=x[i];x[i]=x[j];x[j]=temp; 06. } 07. return; 08. } 09. main(){ 10. int i,a[10]={3,7,9,11,0,6,7,5,4,2}; 11. printf("The original array:\n"); 12. for(i=0;i<10;i++) 13. printf("%d,",a[i]); 14. printf("\n"); 15. inv(a,10); 16. printf("The array has benn inverted:\n"); 17. for(i=0;i<10;i++) 18. printf("%d,",a[i]); 19. printf("\n"); 20. } 对此程序可以作一些改动。将函数inv中的形参x改成指针变量。

《C语言程序设计》数组名作为函数的参数

《C语言程序设计》实验报告 实验名称:数组名作为函数的参数 系别: 计算机系专业:计算机科学与技术班级:五班 姓名: 学号: 实验日期: 教师审批签字:

实验8 数组名作为函数的参数 ⒈实验目的 ⑴掌握数组名作为函数参数的基本使用方式。 ⑵掌握与数组有关的算法(特别是排序算法)。 ⒉实验内容或实验题目 编程题目:(题目⑴、题目⑵为一组,题目⑶为一组。每个同学每组都必须完成1题) 要求:每道题目分别书写程序,试运行(如何输入,结果如何)。 题目⑴:编写函数实现将数组元素按从小到大的顺序排序,主函数从键盘输入10个整数存入数组,调用函数后输出数组的元素。 题目⑵:用数组名作为函数参数,编写一个比较两个字符串s和t大小的函数strcomp(s,t),要求s小于t时返回-1,s等于t?时返回0,s大于t时返回1。在主函数中任意输入4个字符串,利用该函数求最小字符串。 题目⑶:输入6×6的数组,下面的各要求通过编写函数实现,要求用数组名作为函数参数: ①求出对角线上各元素的和; ②求出对角线上行、列下标均为偶数的各元素的积; ③找出对角线上其值最大的元素和它在数组中的位置。 ⒊算法说明 (用文字或流程图说明。)

题目1:

⒋程序清单 题目⑴: #include main() { int i,j,t,n=10,a[10]; printf("Please enter ten numbers:\n"); for(i=0;i a[j]) { t = a[j]; a[j] = a[i]; a[i] = t; } }

C语言数组作为函数参数

数组可以作为函数的参数使用,进行数据传送。 数组用作函数参数有两种形式,一种是把数组元素(下标变量)作为实参使用;另一种是把数组名作为函数的形参和实参使用。 数组元素作函数实参 数组元素就是下标变量,它与普通变量并无区别。 因此它作为函数实参使用与普通变量是完全相同的,在发生函数调用时,把作为实参的数组元素的值传送给形参,实现单向的值传送。【例5-4】说明了这种情况。 【例8-7】判别一个整数数组中各元素的值,若大于0 则输出该值,若小于等于0则输出0值。编程如下:#include void nzp(int v){ if(v>0) printf("%d ",v); else printf("%d ",0); } int main(void){ int a[5],i; printf("input 5 numbers\n"); for(i=0;i<5;i++){ scanf("%d",&a[i]); nzp(a[i]); } return 0; } 本程序中首先定义一个无返回值函数nzp,并说明其形参v为整型变量。在函数体中根据v值输出相应的结果。在main函数中用一个for语句输入数组各元素,每输入一个就以该元素作实参调用一次nzp函数,即把a[i]的值传送给形参v,供nzp函数使用。 数组名作为函数参数 用数组名作函数参数与用数组元素作实参有几点不同。 1) 用数组元素作实参时,只要数组类型和函数的形参变量的类型一致,那么作为下标变量的数组元素的类型也和函数形参变量的类型是一致的。因此,并不要求函数的形参也是下标变量。换句话说,对数组元素的处理是按普通变量对待的。用数组名作函数参数时,则要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明。当形参和实参二者不一致时,即会发生错误。 2) 在普通变量或下标变量作函数参数时,形参变量和实参变量是由编译系统分配的两个不同的内存单元。

c++中关于数组作为函数参数并传递数组元素个数的几种有效方法的讨论

c++中关于数组作为函数参数并传递数组元素个数的几种有效方法的讨论 //由于数组的元素个数默认情况下是不作为实参内容传入调用函数的,本程序用来讨论有此带来的 //相关问题,以及解决问题方法,即给调用函数传递数组的元素个数的几种有效方法并实现它 #include #include using namespace std; void PutArray1(int *p,int length) { for(int ix=0;ix

} void PutArray5(vectorverc) { vector::iterator begin_iter=verc.begin(); vector::iterator end_iter=verc.end(); int size=verc.size (); cout<<"使用两个迭代器来输出int向量"<<"\n"<::iterator iter=begin_iter ;iter!=end_iter;iter++) cout<<*iter<<"\t"; cout< verc1(a,a+10); vector verc2(b,b+8); cout<<"数组a[10]调用函数PutArray1的结果为:\n"<

相关文档
相关文档 最新文档