第7章-数组作为函数参数优质PPT.ppt
《第7章-数组作为函数参数优质PPT.ppt》由会员分享,可在线阅读,更多相关《第7章-数组作为函数参数优质PPT.ppt(19页珍藏版)》请在冰豆网上搜索。
printf(%d,ai);
程序运行时输入程序运行时输入1至至10,则程序输出如下:
,则程序输出如下:
12345678910v一维数组参数的定义和使用原则一维数组参数的定义和使用原则一一维维形形参参数数组组的的定定义义形形式式为为:
类类型型名名形形参参数数组组名名,不不用用指指定定元元素素个个数数,但但一一对对方方括括号号不不可缺少,否则无法说明该参数为一数组。
可缺少,否则无法说明该参数为一数组。
调调用用使使用用数数组组参参数数的的函函数数时时,与与形形参参数数组组对对应应的的实实参参是是一一个个同同类类型型的的数数组组名名,不不需需要要指指定定元元素个数,也不需要加上方括号。
素个数,也不需要加上方括号。
第5章函数35.3函数调用与参数传递函数调用与参数传递v一维数组参数一维数组参数数组参数传递数组参数传递在函数中对形参数组所做改变,将被保存在形参数组所对应的存储空在函数中对形参数组所做改变,将被保存在形参数组所对应的存储空间中,这也就间接改变了实参数组,因为它们对应同样的存储空间。
间中,这也就间接改变了实参数组,因为它们对应同样的存储空间。
当函数调用结束后,形参数组不再对应任何存储空间,形参数组也就当函数调用结束后,形参数组不再对应任何存储空间,形参数组也就没有具体的元素了。
但是,实参数组仍然对应原来的存储空间,而存没有具体的元素了。
但是,实参数组仍然对应原来的存储空间,而存储空间中改变后的值就是实参数组新的元素值。
储空间中改变后的值就是实参数组新的元素值。
通常情况下,数组做函数参数,需要再定义一个整型形参,通常情况下,数组做函数参数,需要再定义一个整型形参,用于传递数组元素个数的信息。
用于传递数组元素个数的信息。
第5章函数45.3函数调用与参数传递函数调用与参数传递v例例5-6编写一个实现字符串倒置的函数,例如,原字符串为编写一个实现字符串倒置的函数,例如,原字符串为“ABCD”,倒置后变为倒置后变为“DCBA”。
#include#includevoidtrans(chars,intn);
/*声明函数原型声明函数原型*/voidmain()charx50;
intn;
gets(x);
n=strlen(x);
puts(Before:
);
puts(x);
putchar(n);
trans(x,n);
/*调用函数调用函数*/puts(After:
第5章函数55.3函数调用与参数传递函数调用与参数传递voidtrans(chars,intn)/*定义函数定义函数*/inti;
charc;
in/2;
i+)c=si;
si=sn-i-1;
sn-i-1=c;
第5章函数65.3函数调用与参数传递函数调用与参数传递v多维数组参数多维数组参数多多维维形形参参数数组组的的定定义义形形式式为为:
类类型型名名形形参参数数组组名名数数值值数数值值,即除了最左边的方括号可能留空外,其余都要填写数值。
即除了最左边的方括号可能留空外,其余都要填写数值。
调用使用多维数组参数的函数时,与形参数组对应的实参是一个同类型的调用使用多维数组参数的函数时,与形参数组对应的实参是一个同类型的数组名,也不需要加上任何方括号。
数组名,也不需要加上任何方括号。
例例5-75-7编写一个函数用于查找并返回编写一个函数用于查找并返回3344的矩阵中的最大元素。
的矩阵中的最大元素。
#includeintmax_value(inta4,intn);
/*声声明明函函数数原原型型*/voidmain()intx34;
intm,i,j;
i3;
i+)for(j=0;
j4;
j+)scanf(%d,&
xij);
第5章函数75.3函数调用与参数传递函数调用与参数传递for(i=0;
j+)printf(%d,xij);
printf(n);
m=max_value(x,3);
/*调用函数调用函数*/printf(nThemaxvalueis%dn,m);
intmax_value(inta4,intn)/*定义函数定义函数*/intm,i,j;
m=a00;
in;
j+)if(maij)m=aij;
return(m);
第5章函数85.5程序应用举例程序应用举例v例例5-17编程处理一批数据,要求:
编程处理一批数据,要求:
(1)随机产生)随机产生20个个10,99范围内的整数;
范围内的整数;
(2)以每行)以每行5个数据的形式输出这批整数;
个数据的形式输出这批整数;
(3)对这批数据进行升序排列,并输出排序后的结果;
)对这批数据进行升序排列,并输出排序后的结果;
(4)计算这批数据的平均值;
)计算这批数据的平均值;
(5)分别统计大于、等于和小于平均值的数据个数。
)分别统计大于、等于和小于平均值的数据个数。
分别设计分别设计5个函数进行数据的随机生成、输出、排序、计算平均值和统计。
个函数进行数据的随机生成、输出、排序、计算平均值和统计。
#include#includevoidgetdata(inta,intn);
/*随随机机生生成成数数据据函函数数的的原原型声明型声明*/voidprintdata(inta,intn);
/*输输出出数数据据函函数数原原型型声声明明*/voidsort(inta,intn);
/*排序函数原型声明排序函数原型声明*/floataverage(inta,intn);
/*求求平平均均值值函函数数原原型型声声明明*/voidcount(inta,intn,floatx,intb);
/*统计函数统计函数原型声明原型声明*/第5章函数95.5程序应用举例程序应用举例voidmain()inta20,b3;
floatx;
getdata(a,20);
printf(nInitialize:
n);
printdata(a,20);
sort(a,20);
printf(nSort:
x=average(a,20);
printf(nAverage:
%fn,x);
count(a,20,x,b);
printf(n=:
printdata(b,3);
第5章函数105.5程序应用举例程序应用举例voidgetdata(inta,intn)inti;
randomize();
i+)ai=random(90)+10;
/*random(90)返返回回0N的随机整整的随机整整*/voidprintdata(inta,intn)inti;
第5章函数115.5程序应用举例程序应用举例voidsort(inta,intn)inti,j,k,t;
in-1;
i+)k=i;
for(j=i+1;
jaj)k=j;
t=ai;
ai=ak;
ak=t;
第5章函数125.5程序应用举例程序应用举例floataverage(inta,intn)floats;
inti;
s=0.0;
i+)s=s+ai;
return(s/n);
voidcount(inta,intn,floatx,intb)inti;
b0=b1=b2=0;
ix)b0+;
elseif(ai=x)b1+;
elseb2+;
第5章函数13数组参数一维数组参数例一维数组参数。
/*声明函数原型*/voidprint_array(inta);
/*声明函数原型*/voidmain()intx10;
/*调用函数*/print_array(x);
/*调用函数*/voidget_array(inta)/*定义函数实现输入数组元素功能*/inti;
第5章函数14voidprint_array(inta)/*定义函数实现输出数组元素功能*/inti;
程序运行时输入1至10,则程序输出如下:
12345678910v一维数组参数的定义和使用原则一维形参数组的定义形式为:
类型名形参数组名,不用指定元素个数,但一对方括号不可缺少,否则无法说明该参数为一数组。
调用使用数组参数的函数时,与形参数组对应的实参是一个同类型的数组名,不需要指定元素个数,也不需要加上方括号。
第5章函数15v一维数组参数数组参数传递在函数中对形参数组所做改变,将被保存在形参数组所对应的存储空间中,这也就间接改变了实参数组,因为它们对应同样的存储空间。
当函数调用结束后,形参数组不再对应任何存储空间,形参数组也就没有具体的元素了。
通常情况下,数组做函数参数,需要再定义一个整型形参,用于传递数组元素个数的信息。
第5章函数16v例编写一个实现字符串倒置的函数,例如,原字符串为“ABCD”,倒置后变为“DCBA”。
/*声明函数原型*/voidmain()charx50;
/*调用函数*/puts(After:
第5章函数17voidtrans(chars,intn)/*定义函数*/inti;
第5章函数18v多维数组参数多维形参数组的定义形式为:
类型名形参数组名数值数值,即除了最左边的方括号可能留空外,其余都要填写数值。
调用使用多维数组参数的函数时,与形参数组对应的实参是一个同类型的数组名,也不需要加上任何方括号。
例编写一个函数用于查找并返回34的矩阵中的最大元素。
/*声明函数原型*/voidmain()intx34;
第5章函数1