Форум программистов, компьютерный форум CyberForum.ru

Рекурсия: вычисление количества четных элементов в целочисленном массиве - C++

Восстановить пароль Регистрация
 
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
12.05.2013, 20:23     Рекурсия: вычисление количества четных элементов в целочисленном массиве #1
Задание: Написать рекурсивную функцию вычисления количества четных элементов в целочисленном массиве {a[i]} где i=1,2,3.......n

Не могу понять как тут представить рекурсивную функцию. сделал набросок, но не думаю, что он правильный. просьба исправить код с++:

C++
1
2
3
4
5
int sum(int a[],int n,int p)
{int i;
for (i=1;i<=n;i++)
if (a[i]%2=0) p=p+1;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2013, 20:23     Рекурсия: вычисление количества четных элементов в целочисленном массиве
Посмотрите здесь:

C++ kоличество нулевых элементов в заданном целочисленном массиве.
В целочисленном массиве, сгенерированным случайным образом, найти наименьший из положительных элементов. C++
В целочисленном массиве найти количество повторяющихся элементов C++
В целочисленном одномерном массиве найти сумму всех нечетных элементов C++
Подсчитать сумму элементов, расположенных на побочной диагонали в целочисленном массиве C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
12.05.2013, 20:27     Рекурсия: вычисление количества четных элементов в целочисленном массиве #2
C++
1
2
3
4
unsigned CountEven(const int a[], unsigned n)
{
  return n == 0 ? 0 : (a[0] % 2 == 0) + CountEven(a + 1, n - 1);
}
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
12.05.2013, 20:29  [ТС]     Рекурсия: вычисление количества четных элементов в целочисленном массиве #3
Somebody, спасибо конечно, но мне бы желательно без всяких unsigned. просто я понятия не имею что это, соответственно преподу это не понравится
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
12.05.2013, 20:47     Рекурсия: вычисление количества четных элементов в целочисленном массиве #4
C++
1
2
3
4
5
6
7
int CountEven(int a[], int n)
{
  if (n <= 0)
    return 0;
  else
    return (a[0] % 2 == 0) + CountEven(a + 1, n - 1);
}
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
19.05.2013, 18:10  [ТС]     Рекурсия: вычисление количества четных элементов в целочисленном массиве #5
Somebody, как вызвать функцию в программе? он мне про прототип что то пишет
henecs
 Аватар для henecs
16 / 16 / 0
Регистрация: 19.05.2013
Сообщений: 135
19.05.2013, 18:12     Рекурсия: вычисление количества четных элементов в целочисленном массиве #6
Zapt1k, опишите функцию до ее первого вызова вызова
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
19.05.2013, 18:18  [ТС]     Рекурсия: вычисление количества четных элементов в целочисленном массиве #7
henecs, никак не могу понять рекурсивные функции. не могли бы Вы написать программу?
henecs
 Аватар для henecs
16 / 16 / 0
Регистрация: 19.05.2013
Сообщений: 135
19.05.2013, 18:24     Рекурсия: вычисление количества четных элементов в целочисленном массиве #8
Zapt1k, напишите код вашей программы
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
19.05.2013, 18:34  [ТС]     Рекурсия: вычисление количества четных элементов в целочисленном массиве #9
henecs
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream.h>
#include <conio.h>
#include <math.h>
const int n=3;
void input (double x[],int n);
void sum (double x[],int n,int p);
void main ()
{double a1[n];
int i,p,d;
input (a1,n);
sum(a1,n,p);
 
cout<<"p="<<p<<endl;
getch ();
}
void input (double x[],int n)
{int i;
for (i=0;i<n;i++)
{cout<<"["<<i<<"]=";
cin>>x[i];}
}
void sum(double x[],int n,int p)
{int i,d;
d=2 ;
for (i=0;i<n;i++)
if (x[i]%d==0) p=p+1;
}
Добавлено через 10 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream.h>
#include <conio.h>
#include <math.h>
const int n=3;
void input (double x[],int n);
void CountEven (int x[],int n);
void main ()
{double a1[n];
int i,p,d;
input (a1,n);
CountEven (a1,n);
 
cout<<"p="<<p<<endl;
getch ();
}
void input (double x[],int n)
{int i;
for (i=1;i<=n;i++)
{cout<<"["<<i<<"]=";
cin>>x[i];}
}
void CountEven (int x[],int n)
{int i;
if (n<=0)
return 0;
else
return (x[0]%2==0) + CountEven (a+1,n-1);
}
Добавлено через 21 секунду
Я окончательно запутался
henecs
 Аватар для henecs
16 / 16 / 0
Регистрация: 19.05.2013
Сообщений: 135
19.05.2013, 18:45     Рекурсия: вычисление количества четных элементов в целочисленном массиве #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream.h>
#include <conio.h>
#include <math.h>
const int n=3;
void input (double x[],int n);
int CountEven (int x[],int n);// вы изменили int на void , зачем?
void main ()
 {
  double a1[n];
  int i,p,d;
  input (a1,n);
  p=CountEven (a1,n); // если я правильно понял результат надо записать в переменную р 
  cout<<"p="<<p<<endl;
  getch ();
 }
void input (double x[],int n)
 {
   int i;
   for (i=1;i<=n;i++)
     {
      cout<<"["<<i<<"]=";
      cin>>x[i];
     }
  }
int CountEven (int x[],int n)
 {
   int i;
   if (n<=0)  
         return 0;
   else  
        return (x[0]%2==0) + CountEven (a+1,n-1);
}
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
19.05.2013, 19:17  [ТС]     Рекурсия: вычисление количества четных элементов в целочисленном массиве #11
не могу понять что она считает в этом виде, но точно не число четных элементов

Добавлено через 3 минуты
она не считает количество четных элементов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2013, 19:23     Рекурсия: вычисление количества четных элементов в целочисленном массиве
Еще ссылки по теме:

Найти количество нулевых элементов в заданном целочисленном массиве C++
C++ В заданном целочисленном массиве определить количество уникальных элементов
Найти в целочисленном массиве самую длинную последовательность чётных по значению элементов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
henecs
 Аватар для henecs
16 / 16 / 0
Регистрация: 19.05.2013
Сообщений: 135
19.05.2013, 19:23     Рекурсия: вычисление количества четных элементов в целочисленном массиве #12
массив должен быть int
C++
1
2
3
4
5
6
7
8
int CountEven (int x[],int n)
 {
   int i;
   if (n<=0)  
         return 0;
   else  
        return (x[0]%2==0) + CountEven (x+1,n-1);
}
Yandex
Объявления
19.05.2013, 19:23     Рекурсия: вычисление количества четных элементов в целочисленном массиве
Ответ Создать тему
Опции темы

Текущее время: 03:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru