1、用数组元素做函数实参。
问题及代码:
#include <stdio.h>
int gcd(int m,int n)
{
int r;
while(r=m%n)
{
m=n;
n=r;
}
return n;
}
int main( )
{
int i;
int a[8]={12,53,32,65,75,245,34,345};
int b[8]={24,36,56,35,29,55,38,34};
int c[8];
for(i=0;i<8;i++)
c[i]=gcd(a[i],b[i]);//对应元素的公约数;
for(i=0;i<8;i++)
printf("%d\n",c[i]);
return 0;
}
运行结果:
知识总结:
数组作为参数的实际应用;
学习心得:
求出两个数组,对应元素的最大公约数;
先自定义一个求公约数的函数,再将对应数组的元素作为参数代入,即可求值;
2、数组内放10个学生成绩,求平均值;
#include <stdio.h>
float average(float array[],int n)//不小心用了int,导致程序不能运行;
{
int i;
float aver;
float sum=array[0];//这里不能定义sum=0;而是定义其为数组第一个元素值;
for(i=1;i<n;i++)
sum+=array[i];
aver=sum/n;
return aver;
}
int main()
{
float score[10]={98,89,87,68,34,67,58,97,88,67};//这里也用了int导致错误;
float aver;
aver=average(score,10); //第一个参数只要写score,不用写score[10] ,是本身就能省略吗?
printf("aver=%0.2f\n",aver);
return 0;
}
运行结果:
知识总结:
同样,数组作为函数参数;求和与平均;
学习心得:
注意要同类型,否则会导致程序出错;
注意,将sum定义为数组第一个元素;
为何调用函数时,参数是score,而不是score[]?