Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 3
1

Найти отношение количества четных элементов к количеству нечетных элементов динамического массива

27.01.2018, 23:24. Показов 885. Ответов 4

Author24 — интернет-сервис помощи студентам
Написать программу, использующую потоки cout и cin для ввода/вывода. Программа должна использовать операции new и delete для работы с динамической памятью.
В программе должна быть функция создания и ввода динамического целочисленного массива. Используя манипуляторы, выведите на экран результат функции, обрабатывающей массив согласно своему варианту, отформатировав его к правой стороне выделенного поля (10 позиций), не более 4-х знаков после запятой, а символ-заполнитель установите *. Не забудьте освободить динамическую память.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream> 
#include <iomanip> 
#include <cmath> 
 
using namespace std;
 
int*  create_array(int* &arr, const int n) {
    delete[]arr;
    arr = new int[n];
    return arr;
}
 
void free_array(int* &arr) {
    delete[]arr;
}
 
void fill_array(int* arr,const int n ) {
    for (int i = 0; i < n; i++)
        arr[i] = rand() % 9 + 1;
}
 
 
void show_array(int* &arr, const int n ) {
    for (int i = 0; i < n; i++)
        cout << "Element [" << i + 1 << "] is " << arr[i] << endl;
}
 
void check_array(int* &arr, const int n) {
    float even = 0, odd = 0;
    for (int i = 0; i < n; i++) {
        if (arr[i] % 2 == 0)
            even++;
        else
            odd++;
    }
    cout << "There are " << even << " even elements." << endl;
    cout << "There are " << odd << " odd elements." << endl;
    cout << "Even to odd ratio -> " << even / odd;
}
 
 
int main() {
    int n;
    cout << "Enter lenght of array -> ";
    cin >> n;
    int *task = 0;
    task = create_array(task, n);
    fill_array(task,n);
    show_array(task,n);
    check_array(task,n);
    free_array(task);
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2018, 23:24
Ответы с готовыми решениями:

Отношение количества четных элементов к количеству нечетных
Отношение количества четных элементов к количеству нечетных; C++

Найти отношение количества элементов, большего первого элемента к количеству элементов больших последнего элемента
Здравствуйте люди нужна помощь очень срочно по с++. Дан массив A(I), I= 1,2,..., n. Найти...

Найти суммы четных элементов (элементов с четным номером) массива вещественных чисел A(22) и нечетных элементов
Здравствуйте, дорогие форумчане. Не могли бы вы мне помочь? Мне нужно составить программу с таким...

Функция: найти произведение четных (по значению) элементов динамического массива и сумму отрицательных элементов
Может кто-нибудь может помочь с задачей Написать код функции пользователя, в которую передаются:...

4
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
28.01.2018, 00:20 2
можно n объявить вне методов, после
C++
5
using namespace std;
и тогда передавать его в виде параметра не нужно, так как все методы будут его видеть
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
28.01.2018, 04:07 3
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>
#include <iomanip>
using namespace std;
 
int *f(int n)
{
    int *A = new int [n];
    for (int i = 0; i < n; i++) 
    {    
    cout <<"A["<<i<<"]="; cin >>A[i];
    }           
    return A;
}
 
int main()
{    
    int n, *A, even=0, odd=0;
    cout << "Enter n: ";    cin >> n;   
    A = f(n);         
    for (int i = 0; i < n; i++) 
    if (A[i] % 2 == 0) even++; else odd++;    
    cout.fill ('*');
    cout <<"c="<<setw(10)<<setprecision(4)<<(double)even/odd;       
    delete [] A; 
system("pause"); 
return 0;
}
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
28.01.2018, 11:02 4
Ну и вариант с vector
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
 
int main() {
    setlocale(LC_ALL, "rus");
    std::size_t n; std::cout << "N = "; std::cin >> n;
    std::vector<int> a(n); int v, even = 0, odd = 0;
    std::cout << "Введите " << n << " элементов массива через пробел: ";
    std::generate(a.begin(), a.end(), [&v] { std::cin >> v; return v; });
    std::copy(a.begin(), a.end(), std::ostream_iterator<int>(std::cout, " "));
    for (int e : a) e % 2 == 0 ? even++ : odd++;
    std::cout << "\nОтношение количества чётных к нечётным: " << (double)even / odd << "\n";
    system("pause");
}
0
Заклинатель змей
700 / 555 / 219
Регистрация: 30.04.2016
Сообщений: 2,591
28.01.2018, 11:06 5
Andrewka99, unspecified behavior в 8-ой строке если arr == nullptr
0
28.01.2018, 11:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2018, 11:06
Помогаю со студенческими работами здесь

Определить сумму указанных элементов, количество нечетных элементов и среднее арифметическое четных элементов массива
Дан двумерный массив целых чисел. Определить: 1. Сумму элементов массива, больших 30 2....

Найти сумму четных элементов, количество нечетных элементов и произведение элементов, кратным 3
Дан одномерный массив состоящий из 10 элементов а) найти сумму четных элементов; б)найти...

Найти сумму элементов четных строк и произведение элементов нечетных строк массива
дан двумерный массив динамический массив. Найти сумму элементов четных строк и произведение...

Найти сумму четных и произведение нечетных элементов массива
Дано одномерный целочисленный массив. Найти сумму четных и и произведение нечетных элементов...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru