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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
CFYZ
10 / 10 / 0
Регистрация: 21.11.2009
Сообщений: 187
#1

Найти количество четных и нечетных членов последовательности - C++

13.05.2010, 19:56. Просмотров 1149. Ответов 2
Метки нет (Все метки)

Даны натуральные числа n, p, q, a1, a2,.....,an, причем n>=q>p>=1. Найти количество четных и нечетных членов последовательности a, a2,...,an. Определить значения наименьшего четного члена и наибольшего нечетного члена последовательности ap, ap+1,....,an.
Упорядочить члены последовательности ap, ap+1,....,aq по убыванию, используя алгоритм сортировки методом прямого выбора.

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
33
34
35
36
37
38
include <iomanip.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
main()
 
{
int n,//kol-vo el-tov v ishodnom massive
    m;//kol-vo el-tov v rezult massive
int *a,// massiv (ishodnii i rezultiruuchii)
    *temp_a;// vremnnii massiv
int i,j; //schetchik chiklov
int c, nc;//schetchik chetnosti
int imax, //indeks maks. el-ta
    imin; //indeks min el-ta
int temp;//bufer dlya sortirovki
int p,q;//peremenii dlya raboti ciklov
{
 clrscr();
//formirovanie ishodnogo massiva
cout<<"Vvedite P: ",cin>>p;
cout<<"Vvedite Q: ",cin>>q;
cout<<"Vvedite kol-vo elementov massiva: ", cin>>n;
a=new int[n];
cout<<"Vvedite "<<n<<" elementov massiva: ";
for (i=0; i<n; i++) cin>>a[i];
cout<<"Ishodnii massiv:"<<endl;
for (i=0; i<n; i++) cout<<"a["<<i<<"]="<<a[i]<<" ";
cout<<endl;
}
//proverka na chetnost i nechetnost
c=0; nc=0;
for (i=0; i<n; i++){
if (a[i]%2==0) c++;
else nc++;}
cout<<c<<" ";
cout<<nc;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2010, 19:56     Найти количество четных и нечетных членов последовательности
Посмотрите здесь:

C++ Определить количество членов последовательности, являющихся квадратами четных чисел
C++ Определить количество нечетных членов последовательности, имеющих четные номера
C++ Посчитать количество четных и количество нечетных членов массива
Найти количество четных и количество нечетных элементов ряда C++
Найти наибольшее из нечетных и количество четных чисел C++
Числа. Подсчитать количество четных и нечетных чисел- разрядов. Найти суммы только всех четных и только нечетных, проверить какая из сумм больше C++
Найти в каждом числе последовательности количество четных и нечетных цифр C++
Найти количество и сумму четных и нечетных чисел в массиве C++
C++ Найти в каждом числе количество четных и нечетных цифр
C++ Найти в каждом числе количество четных и нечетных цифр
C++ Получить новый массив из всех нечетных/четных членов последовательности по условию
Найти среднее арифметическое нечетных членов последовательности C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
14.05.2010, 00:08     Найти количество четных и нечетных членов последовательности #2
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
#include <functional>
#include <limits>
#define N 20
#define P 5
#define Q 15
 
using namespace std;
 
class generator
{
public:
    generator() : prev() {}
    generator(int arg) : prev(arg) {}
 
    int operator() ( )
    {
        prev += rand() % 5; 
        return prev;
    }
private:
    int prev;
};
 
class comparator
{
public:
    comparator() : m_even(), m_odd(), m_minEven(numeric_limits<int>::max()), m_maxOdd() 
    {}
 
    void operator() (int& arg)
    {
        if (arg & 1)
        {
            ++m_odd;
            if (m_maxOdd < arg) m_maxOdd = arg;
        }
        else
        {
            ++m_even;
            if(m_minEven > arg) m_minEven = arg;
        }
    }
    void print()
    {
        cout << "Even numbers: " << m_even << "\nOdd numbers: " << m_odd << endl;
    }
    int getMinEven() {return m_minEven;}
    int getMaxOdd() {return m_maxOdd;}
 
private:
    int  m_minEven;
    int  m_maxOdd;
    short m_even;   //Парні числа
    short m_odd;    //Непарні числа
};
 
int main()
{
    vector<int> numbers(N);
    srand(static_cast<unsigned>(time(NULL)));   
 
    generate(numbers.begin(), numbers.end(), generator());
        cout << "Vector's elements:\n";
        copy(numbers.begin(), numbers.end(), ostream_iterator<int>(cout, " "));
 
    comparator first = for_each(numbers.begin(), numbers.end(), comparator());
        cout << "\nReport [A..An]:\n";
            first.print();
    
    comparator second = for_each(numbers.begin() + P, numbers.end(), comparator());
        cout << "Report [Ap..An]:\nminEven number: " << second.getMinEven() << "\nmaxOdd number: "
             << second.getMaxOdd() << endl;
 
    sort(numbers.begin() + P, numbers.begin() + Q, greater<int>());
        cout << "Vector's elements after sort:\n";
            copy(numbers.begin(), numbers.end(), ostream_iterator<int>(cout, " "));
                cout << endl;
    system("pause");
    return 0;
}
Сортировку можно написать нужным алгоритмом
CFYZ
10 / 10 / 0
Регистрация: 21.11.2009
Сообщений: 187
15.05.2010, 00:38  [ТС]     Найти количество четных и нечетных членов последовательности #3
А можно это как-то упростить, т.к. почти все что написано в Вашей программе мы еще не проходили и соответственно. будет преподу ясно, что сам я это сделать не смог бы.

Добавлено через 14 часов 22 минуты
Помогите исправить ошибки в этой проге.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iomanip.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
main()
 
{
int n,//kol-vo el-tov v ishodnom massive
    m,//kol-vo el-tov v rezult massive
    f,
    g;
int *a,// massiv (ishodnii i rezultiruuchii)
    *b,// vremnnii massiv
    *v;
 
int i,j; //schetchik chiklov
int c, nc;//schetchik chetnosti
int imax, //indeks maks. el-ta
    imin; //indeks min el-ta
int temp;//bufer dlya sortirovki
int p,q;//peremenii dlya raboti ciklov
{
 clrscr();
//formirovanie ishodnogo massiva
cout<<"Vvedite P: ",cin>>p;
cout<<"Vvedite Q: ",cin>>q;
cout<<"Vvedite kol-vo elementov massiva: ", cin>>n;
a=new int[n];
cout<<"Vvedite "<<n<<" elementov massiva: ";
for (i=0; i<n; i++) cin>>a[i];
cout<<"Ishodnii massiv:"<<endl;
for (i=0; i<n; i++) cout<<"a["<<i<<"]="<<a[i]<<" ";
cout<<endl;
}
//proverka na chetnost i nechetnost
c=0; nc=0;
for (i=0; i<n; i++){
if (a[i]%2==0) c++ && a[i]=b[f];
else nc++ && a[i]=v[g];}
cout<<c<<" ";
cout<<nc;
{cout<<"Massiv chetnih:"<<endl;
for (f=0; f<n; f++) cout<<"b["<<f<<"]="<<b[f]<<" ";}
{cout<<"Massiv ne chetnih:"<<endl;
for (g=0; g<n; g++) cout<<"v["<<g<<"]="<<v[g]<<" ";}
return 0;}
Yandex
Объявления
15.05.2010, 00:38     Найти количество четных и нечетных членов последовательности
Ответ Создать тему
Опции темы

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