Массивы в качестве параметров функции
Два способа использования одномерных массивов в качестве параметров функции.
I способ. Синтаксис:
тип_функции имя_функции ( тип_массива имя_массива [ n ] )
{ тело функции}
n – количество элементов в массиве
Вызов функции: имя_функции (имя_массива);
Используется для массивов одинаковой длины.
Пример: Написать функцию нахождения минимума в одномерном массиве.
int mini (int a[n])
{ int min = 999;
for(int i = 0; i < n; i ++)
if (a[i] < min) min = a[i];
return min;
}
Вызов функции в главном модуле:
main()
{ int mas[m], tmin;
…………………
tmin = mini (mas);
…………………
}
II способ. Синтаксис:
тип_функции имя_функции ( тип_массива имя_массива [ ], int n )
{ тело функции}
n – количество элементов в массиве
Вызов функции: имя_функции (имя_массива, кол-во элементов мас-ва);
В определении функции используется два формальных параметра, значит и при вызове тоже используется два фактических параметра (имя массива и количество элементов). Второй способ используется, когда функция с таким описанием формальных параметров, используется для массивов разной длины.
Пример массива, в качестве параметра функции (Решение задачи можно посмотреть, скачав файл "Задача-11"):
Напишите функцию, которая подсчитывает среднее арифметическое элементов массива, кратных 3. В программе объявите 2 массива разной длины.
#include <iostream.h>
#include<conio.h>
# define n 5
# define m 7
float sredn (int a[],int t)
{ float sr,sum=0;
int kol=0;
for(int i=0;i<t;i++)
if (a[i]%3==0)
{sum=sum+a[i];
kol=kol+1;
}
sr=sum/kol;
return sr;
}
void main()
{ int b[n], c[m], i;
float sr1, sr2;
cout<<"vvedite "<<n<<" elementov 1-go massiva\n";
for (i=0;i<n;i++)
cin>>b[i];
cout<<"vvedite "<<m<<" elementov 2-go massiva"<<endl;
for (i=0;i<m;i++)
cin>>c[i];
sr1 = sredn (b, n);
sr2 = sredn (c, m);
cout<<"srednee znachenie 1-go massiva: "<<sr1<<endl;
cout<<"srednee znachenie 2-go massiva: "<<sr2;
getch();
}
|