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

С++ массив

10.04.2020, 16:27. Показов 1663. Ответов 1

Author24 — интернет-сервис помощи студентам
Ребят помогите пожалуйста
в одномерном массиве , состоящем из n вещественных элементов,
вычислить: 1) минимальный элемент массива , 2) сумму элементов массива , расположенных между 1 и последним положительными элементами.
Преобразовать массив таким образом , что бы сначала , располагались все элементы , равные 0, а потом - все остальные.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2020, 16:27
Ответы с готовыми решениями:

Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y
Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный...

Массив: Объединить заданные массивы в один массив, включив второй массив между k-м и (k+1)-м элементами первого
Заданы два одномерных массива с различным количеством элементов и натуральное число k. Объединить...

Сформировать массив, который будет состоять из чисел, входящих как в массив A, так и в массив B
Задание: На основе исходных массивов A и B (n и m – рабочие размеры массивов) сформировать массив...

Массив: Преобразовать массив, прибавив к четным числам, входящим в массив, значение первого элемента.
Есть задача С клавиатуры вводятся элементы целочисленного массива размера N. Преобразовать его,...

1
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
10.04.2020, 20:48 2
Лучший ответ Сообщение было отмечено Dmitry_SA как решение

Решение

Dmitry_SA, здравствуйте! Я решил сконцентрироваться на задаче: Преобразовать массив таким образом, чтобы сначала располагались все элементы равные 0, а потом - все остальные (пункт правил 4.4: на каждый вопрос создавайте по одной теме - это помогает избежать путаницы в ответах и облегчает поиск).

Вот решение:

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
#include <iostream>
 
    using namespace std;
 
int main() {
    int n, k;
    cout << "Enter an array size:\n";
    cout << "n = ";
    cin >> n;
    double* a = new double[n];
    double* b = new double[n]{ 0 };
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    k = n - 1;
    for (int i = n - 1; i >= 0; i--) {
        if (a[i] != 0) {
            b[k--] = a[i];
        }
    }
    copy(b, b + n, a);
    cout << "Output of the program:\n";
    for (int i = 0; i < n; i++) {
        cout << a[i] << " ";
    }
    delete[] a;
    delete[] b;
    return 0;
}
P.S. В своем решении я решил использовать дополнительный массив, хотя это не обязательно, но было также важно сохранить порядок следования элементов. Вообще, обычный метод Пузырька легко справляется с данной проблемой:

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>
 
    using namespace std;
 
int main() {
    int n;
    cout << "Enter an array size:\n";
    cout << "n = ";
    cin >> n;
    double* arr = new double[n];
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }
    for (int i = 0; i < n; i++) {
        for (int j = n - 1; j > i; j--) {
            if (arr[j-1] && !arr[j]) {
                swap(arr[j-1], arr[j]);
            }
        }
    }
    cout << "Output of the program:\n";
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    delete[] arr;
    return 0;
}
Если порядок элементов не важен, то можно это сделать за линейное время:

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>
 
    using namespace std;
 
int main() {
    int n, k;
    cout << "Enter an array size:\n";
    cout << "n = ";
    cin >> n;
    double* arr = new double[n];
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }
    k = 0;
    for(int i = 0; i < n; i++) {
        if (arr[i] == 0) {
            swap(arr[i], arr[k]);
            k++;
        }
    }
    cout << "Output of the program:\n";
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    delete[] arr;
    return 0;
}
1
10.04.2020, 20:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2020, 20:48
Помогаю со студенческими работами здесь

Дан массив целых чисел а(12). Переписать в массив х четные, а в массив у нечетные элементы массива а
Помогите пожалуйста решить эту задачу. Массив a выводит на печать. Я пишу a mod 2 = 0 , а он мне 41...

Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а отрицательные в массив C
Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а...

Сформировать массив C, который будет состоять из чисел, которые одновременно входят как в массив A, так и в массив B
Есть задание :На основе исходных массивов A и B (n и m – рабочие размеры массивов) сформировать...

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

Массив: Получить новый массив P, состоящую из чисел в интервале (a,b), которые не входят в массив H...
Помогите с заданием, пожалуйста :Написать программу, которая формирует новую последовательность P,...

Массив: Отсортировать полученный массив 3 способами: по строкам, по столбцам( возр.), 3) и весь массив
Помогите, пожалуйста ,решить задачу. Очень нужно. Задан массив (4*6). Элементы задаются по...


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

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