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

После каждого нечетного элемента массива вставить максимальный простой элемент этого же массива

27.06.2017, 14:15. Просмотров 819. Ответов 1
Метки нет (Все метки)

ЗАДАЧА 1.
В целочисленный массив X(n) после каждого нечетного элемента
вставить максимальный простой элемент этого же массива. Определить
среднее арифметическое простых элементов массива до и после вставки.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2017, 14:15
Ответы с готовыми решениями:

Вставить после каждого нечетного элемента массива максимальный простой элемент этого же массива
В целочисленный массив X(n) после каждого нечетного элемента вставить максимальный простой элемент...

Вставить после каждого нечетного значения массива нулевой элемент
3адан целочисленный массив размера N. Вставить после каждого нечетного значения нулевой элемент. ...

В целочисленном массиве после каждого четного числа вставить максимальный элемент массива
В целочисленном массиве X(N) после каждого четного числа вставить максимальный элемент массива....

В целочисленном массиве после каждого четного числа вставить максимальный элемент массива
В целочисленном массиве X(N) после каждого четного числа вставить максимальный элемент массива....

Вставить после каждого нулевого элемента массива элемент, стоящий посередине
Добрый вечер форму. Я у вас тут новенький,и это моя первая тема:) Не знаю куда обратиться поэтому...

1
anapshy
255 / 236 / 199
Регистрация: 14.11.2016
Сообщений: 890
Завершенные тесты: 3
28.06.2017, 17:17 2
Лучший ответ Сообщение было отмечено Владимир189 как решение

Решение

Владимир189, заблокирован уже ? обидка
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <ctime>
int GetRand(const int, const int);
bool IsNumPrime(const int);
void FillArray(int*, const int);
int FindMaxPrimeInArray(const int*, const int);
void InsertMaxPrimeInArray(int*, int&, const int);
double GetAverageArray(const int*, const int);
void PrintArray(const int*, const int);
int main(void)
{
    srand(unsigned(std::time(NULL)));
    int N(0), *arr(NULL);
    std::cout << "Enter the size of array: ";
    std::cin >> N;
    arr = new int[N];
    FillArray(arr, N);
    //**********************************
    std::cout << "\nBefore:" << std::endl;
    PrintArray(arr, N);
    //**********************************
    int max_prime(FindMaxPrimeInArray(arr, N));
    double average_before(GetAverageArray(arr, N)),
           average_after(0);
    InsertMaxPrimeInArray(arr, N, max_prime);
    average_after = GetAverageArray(arr, N);
    //**********************************
    std::cout << "\nAfter:" << std::endl;
    PrintArray(arr, N);
    //**********************************
    std::cout << std::endl
        << "max_prime: " << max_prime << std::endl
        << "average_before: " << average_before << std::endl
        << "average_after:" << average_after << std::endl << std::endl;
    delete[] arr;
    system("pause");
    return 0;
}
 
int GetRand(const int x, const int y)
{
    return -x + rand() % (y * 2 + 1);
}
 
bool IsNumPrime(int num) {
    for (int i = 2; i <= std::sqrt(num); i++)
        if (num % i == 0)
            return false;
    return true;
}
 
void FillArray(int *arr, const int N)
{
    for (int i(0); i < N; i++)
        arr[i] = GetRand(-50, 50);
}
 
int FindMaxPrimeInArray(const int *arr, const int N)
{
    int max(0);
    for (int i(0); i < N; i++)
        if (IsNumPrime(arr[i]))
        {
            max = arr[i];
            for (int j(i + 1); i < N; i++)
                if (IsNumPrime(arr[i]))
                    if (max < arr[i])
                        max = arr[i];
        }
    return max;
}
 
double GetAverageArray(const int *arr, const int N)
{
    double average(0);
    for (int i(0); i < N; i++)
        average += double(arr[i]);
    return average / N;
}
 
void InsertMaxPrimeInArray(int *arr, int &N, const int max_prime)
{
    int new_size(N % 2 ? N / 2 + 1 + N : N / 2 + N),
        *temp = new int[N];
    for (int i(0); i < N; i++)
        temp[i] = arr[i];
    delete[] arr;
    arr = new int[new_size];
    bool flag(true);
    for (int i(0), count(0); i < new_size; i++)
    {
        if (flag)
        {
            arr[i] = temp[count++];
            arr[++i] = max_prime;
            flag = false;
        }
        else
        {
            arr[i] = temp[count++];
            flag = true;
        }
    }
    N = new_size;
    delete[] temp;
}
 
void PrintArray(const int *arr, const int N)
{
    for (int i(0); i < N; i++)
        std::cout << arr[i] << " ";
    std::cout << std::endl;
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2017, 17:17

Вставить после каждого отрицательного элемента массива минимальный элемент (что не так в коде?)
Прошу прощения, что не так в этом программном коде? QT просто отказывается говорить, отмазываясь...

Вставить в массив максимальный по модулю элемент после каждого отрицательного элемента с четным индексом
К ней я не могу написать код. Вот условие: Дан массив целых чисел размера n. Вставить в массив...

Все отрицательные элементы заданного массива L (11) разделить на максимальный элемент этого массива. Вывести максимальный элемент, начальный и преобра
Помогите составить программу на С++


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

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

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