函数调用时参数传递方式
第1页,本讲稿共12页
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也可省略*/
}
第2页,本讲稿共12页
3·2·2 数组元素作函数参数
例4_3_5 两个队进行“掰手腕”比赛,每队5名选手,每次每队出一名选手,由每队教练决定各自选手的出场顺序,共进行5场比赛,决出胜负。我们这里做个假设,比赛都是体重较重的人获胜,这样各队选手的出场顺序就非常关键了。输入排好顺序的各队的1~5号选手的体重,比较一下谁能获胜。
分析:定义fTeama[5]、fTeamb[5]数组存储两队选手的体重。定义函数Judge来比较选手的体重,若Teama队选手体重大,就返回值1;若Teamb队选手体重大,就返回值-1。再定义两个变量对各队的胜利次数进行累加,最后再进行比较,决出胜利者。
第3页,本讲稿共12页
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自增 */
函数调用时参数传递方式 来自淘豆网m.daumloan.com转载请标明出处.