Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
#1

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

12.05.2013, 20:23. Просмотров 977. Ответов 11
Метки нет (Все метки)

Задание: Написать рекурсивную функцию вычисления количества четных элементов в целочисленном массиве {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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2013, 20:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсия: вычисление количества четных элементов в целочисленном массиве (C++):

Рекурсия: вычисление произведения элементов массива (только четных и больше 0) - C++
Задание : С++ Написать рекурсивную функцию вычисления произведения элементов массива только четных и больше 0 Просто вычислить...

В целочисленном массиве найти максимальный элемент среди четных и среди нечетных элементов - C++
В целочисленном массиве X(N) найти max1 - максимальный элемент среди четных элементов массива и max2 - максимальный элемент среди нечетных...

Рекурсия: подсчет количества четных цифр числа (на С) - C++
Написать рекурсивную функцию считывающую количество четных цифр числа. Плохо понял рекурсию объясните на этом примере пожалуйста.

В заданном целочисленном массиве найти количество уникальных элементов и сумму всех элементов - C++
В массиве, состоящем из п целых элементов, вычислить: - количество различных элементов; - сумму элементов массива, расположенных после...

Рекурсия: вычисление суммы и количества цифр числа, максимальной и минимальной его цифры - C++
Помогите, пожалуйста, разобраться и написать программу на С++. Условие такое: Для числа, введеного с клавиатуры, определить рекурсивные...

В целочисленном массиве найти количество повторяющихся элементов - C++
В целочисленном массиве нужно найти количество повторяющихся элементов. Как это сделать кто-то может подсказать?

11
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,199
Завершенные тесты: 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);
}
1
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
12.05.2013, 20:29  [ТС] #3
Somebody, спасибо конечно, но мне бы желательно без всяких unsigned. просто я понятия не имею что это, соответственно преподу это не понравится
0
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,199
Завершенные тесты: 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);
}
0
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
19.05.2013, 18:10  [ТС] #5
Somebody, как вызвать функцию в программе? он мне про прототип что то пишет
0
henecs
17 / 17 / 0
Регистрация: 19.05.2013
Сообщений: 135
19.05.2013, 18:12 #6
Zapt1k, опишите функцию до ее первого вызова вызова
0
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
19.05.2013, 18:18  [ТС] #7
henecs, никак не могу понять рекурсивные функции. не могли бы Вы написать программу?
0
henecs
17 / 17 / 0
Регистрация: 19.05.2013
Сообщений: 135
19.05.2013, 18:24 #8
Zapt1k, напишите код вашей программы
0
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 секунду
Я окончательно запутался
0
henecs
17 / 17 / 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);
}
0
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
19.05.2013, 19:17  [ТС] #11
не могу понять что она считает в этом виде, но точно не число четных элементов

Добавлено через 3 минуты
она не считает количество четных элементов
0
henecs
17 / 17 / 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);
}
0
19.05.2013, 19:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2013, 19:23
Привет! Вот еще темы с ответами:

kоличество нулевых элементов в заданном целочисленном массиве. - C++
7.Напишите программу, печатающую количество нулевых элементов в заданном целочисленном массиве.

В заданном целочисленном массиве определить количество уникальных элементов - C++
Дан массив a из n целых чисел. Требуется определить количество различных элементов.

В целочисленном массиве определить количество элементов отличных от последнего - C++
Помогите,пожалуйста, с задачей. В первой строке вводится число N (1&lt;=N&lt;=20) - количество элементов одномерного массива Во второй...

Найти количество нулевых элементов в заданном целочисленном массиве - C++
Напишите программу, печатающую количество нулевых элементов в заданном целочисленном массиве.


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru