Задачка на C++(Функции) В главной функции вводится 5 чисел, а вспомогательная функция находит сумму четных чисел.
/
/
float subfunc(float *a){
float summ=0;
for (int i=0; i < sizeof(a)/sizeof(float) ; i++)
if (a [ i ] % 2 == 0) summ+=a [ i ];
return summ;
}
Прислал код письмом (долбанный статус ученика не даёт написать сюда)
что не сработает, если массив через new создавался.
так что не будем стесняться - передадим размер в функцию явно.
а поскольку для вещественных чисел понятие "четность" несколько размыто - возьмем int
ну и, естественно, массив передаем по константному указателю
int subfunc(const int*a, unsigned int size )
{
int summ=0;
for (unsigned int i=0; i < size ; i++)
if (a [ i ] % 2 == 0) summ+=a [ i ];
return summ;
}
!!! Или я еб... утый или лыжи не идут !!!
for (int i=0; i < sizeof(a)/sizeof(float) ; i++)
ЭТО вообще не сработает.
В С/C++ При вызове функции с именем массива в функцию передается УКАЗАТЕЛЬ
на первый элемент массива, А НЕ ЕГО КОПИЯ! Так что таким способом вы точно не узнаете его размер.