Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
CFYZ
10 / 10 / 4
Регистрация: 21.11.2009
Сообщений: 187
1

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

13.05.2010, 19:56. Просмотров 1476. Ответов 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;}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2010, 19:56
Ответы с готовыми решениями:

Найти в каждом числе последовательности количество четных и нечетных цифр
Помогите пожалуйста с задачками. 3. Вводится последовательность целых чисел,...

Получить новый массив из всех нечетных/четных членов последовательности по условию
Дано натуральное число n и целые числа a1,...an. Если в данной...

Посчитать количество четных и количество нечетных членов массива
Здравствуйте! Прошу помочь в создании одномерного динамического массива с...

Числа. Подсчитать количество четных и нечетных чисел- разрядов. Найти суммы только всех четных и только нечетных, проверить какая из сумм больше
Добрый день, не могу понять как же составить программу для этой задачи без...

Определить количество нечетных членов последовательности, имеющих четные номера
Даны натуральные числа n, а1,......,аn. Определить количество членов ак...

2
Manjak
270 / 176 / 46
Регистрация: 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;
}
Сортировку можно написать нужным алгоритмом
1
CFYZ
10 / 10 / 4
Регистрация: 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;}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2010, 00:38

Вычислить отдельно сумму четных и сумму нечетных членов последовательности
Добрый день! Только начал изучать этот язык и пытаюсь решить две задачи. Увы, с...

Определить количество членов последовательности, являющихся квадратами четных чисел
Обьясните пожалуста как решить такую задачу: Даны целые положительные числа...

Найти среднее арифметическое нечетных членов последовательности
2.организовать ввод последовательности целых чисел,признаком конца которой...


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

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

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