main()
{
void Swap(int iA,int iB); /*函数声明*/
int iA,iB; /*定义变量iA,iB*/
printf(“Input iA iB=”); scanf(“%d%d”,&iA,&iB); printf(“\r\n”); /*键盘输入iA,iB的值*/
printf(“a=%d,b=%d\n”,iA,iB); ①/*输出iA,iB的值*/
Swap(iA,iB); /*调用Swap函数*/
printf(“a=%d,b=%d\n”,iA,iB); ②/*再次输出iA,iB的值*/
}
void Swap(int iA,int iB) /*定义Swap函数*/
{
int iTemp; /*定义数据交换的中间变量iTemp*/
printf(“a=%d,b=%d\n”,iA,iB); ③/*输出iA,iB的值*/
iTemp=iA; /*交换iA,iB的值*/
iA=iB;
iB=iTemp;
printf(“a=%d,b=%d\n”,iA,iB); ④/*再次输出iA,iB的值*/
return; /*Swap函数无返回值,故return后无参数。当然连return也可省略*/
}
3·2·2 数组元素作函数参数
例4_3_5 两个队进行“掰手腕”比赛,每队5名选手,每次每队出一名选手,由每队教练决定各自选手的出场顺序,共进行5场比赛,决出胜负。我们这里做个假设,比赛都是体重较重的人获胜,这样各队选手的出场顺序就非常关键了。输入排好顺序的各队的1~5号选手的体重,比较一下谁能获胜。
分析:定义fTeama[5]、fTeamb[5]数组存储两队选手的体重。定义函数Judge来比较选手的体重,若Teama队选手体重大,就返回值1;若Teamb队选手体重大,就返回值-1。再定义两个变量对各队的胜利次数进行累加,最后再进行比较,决出胜利者。
main()
{
int Judge(float fA,float fB); /*函数声明*/
float fTeama[5],fTeamb[5]; int i,iA=0,iB=0;
printf(“Please input Team A:\n”);
for(i=0;i<5;i++) scanf(“%f”,fTeama[i]); /*输入数组Teama*/
printf(“Please input Team B:\n”);
for(i=0;i<5;i++) scanf(“%f”,fTeamb[i]); /*输入数组Teamb*/
for(i=0;i<5;i++) /*由i控制循环,共循环5次,也就是调用5次函数*/
if(Judge(fTeama[i],fTeamb[i])= =1) /*,调用Judge函数判断fTeama[i]与fTeamb[i]的大*/
iA++; /* 小,若返回值是1,则表示Teama获胜,iA自增*/
else /*若返回值是-1,则表示Teamb获胜,iB自增*/
if(Judge(fTeama[i],fTeamb[i])= =-1) iB++;
if(iA>iB) scanf(“%f”,fTeamb[i]); /*比较iA和iB的大小,输出相应的信息*/
else printf(“Team B Win!\n”);
}
int Judge(float fA,float fB) /* Judge函数用于比较体重,实参、与形参类型必须一致*/
{
if(fA>fB) return(1); /*如果fA大于fB,函数返回值是1*/
else if(fA<fB) return(-1); /*否则函数返回值是-1*/
}
3·2·3 数组名作函数参数
例4_3_6 已知一个班10名学生的计算机考试成绩,求平均成绩。要求:在主函数main中输入10个成绩,并输出最后的平均成绩;求平均成绩的过程用函数完成。
分析:这是本节的例 4_1_1,前面是用一个主函数完成的。10个已知数据我们仍然把它们组织成一个数组iScore[10]。要用函数计算数组10个元素的平均值,就应该由主调函数将这10个数组元素传递给被调函数,我们将数组作为一个整体传递给被调函数。实参表列就写数组名即可,形参表列就写与实参数组同类型的数组。
/* */
main()
{
float Average(int iScore[10]); /*函数声明*/
int iScore[10],i; float fAver;
for(i=0;i<10;i++) scanf(“%d”,&iScore[i]); /*输入10个成绩*/
fAver=Average(iScore
函数调用时参数传递方式 来自淘豆网m.daumloan.com转载请标明出处.