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

Сформировать из исходного массива массив, состоящий только из нулевых элементов

20.10.2021, 22:04. Показов 1113. Ответов 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
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
#include <iomanip>
#include <iostream>
#include <math.h>
#include <cstdlib>
#include <ctime>
 
 
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(0)); 
    int n, a, b, s;
    cout << "                         Лабараторная работа №3" << endl;
    cout << "Задание №1. Дан одномерный массив, сформировать из него 3 массива:" << endl;
    cout << "    1) Положительные элементы исходного массива, отсортированные по возрастанию;" << endl;
    cout << "    2) Отрицательные элементы исходного массива, отсортированные по убыванию;" << endl;
    cout << "    3) нулевые элементы; \n" << endl;
    cout << "Введите размерность одномерного массива: \n";
    cin >> n;
    cout << "Введите нижний предел изменения случайных чисел: \n";
    cin >> a;
    cout << "Введите верхний предел изменения случайных чисел: \n";
    cin >> b;
    int* array1 = new int[n]; 
    int* array2 = new int[n];
    int* array3 = new int[n];
    srand(time(0));
    cout << "\n";
    cout << "Получившийся исходный массив: " << endl;
    for (int i = 0; i < n; i++)
    {
        array1[i] = a + rand() % (b - a + 1);
        array2[i] = array1[i];
        array3[i] = array1[i];
        cout << array1[i] << " ";
    }
    cout << "\n";
 
    /*cout << "Получившийся массив, где положительные элементы отсортированы по возрастанию: " << endl;
    for (int i = 0; i < n; i++)
    {
        if (array1[i] > 0)
        {
            int temp = array1[0];
            for (int j = i + 1; j < n; j++)
            {
                if (array1[i] > array1[j] && array1[j] > 0)
                {
                    temp = array1[i];
                    array1[i] = array1[j];
                    array1[j] = temp;
                }
            }
            cout << array1[i] << " ";
        }
    }
    cout << "\n";
 
    cout << "Получившийся массив, где отрицательные элементы отсортированы по убыванию: " << endl;
    for (int i = 0; i < n; i++)
    {
        if (array2[i] < 0)
        {
            int temp = array2[0];
            for (int j = i + 1; j < n; j++)
            {
                if (array2[i] > array2[j] && array2[j] < 0)
                {
                    temp = array2[i];
                    array2[i] = array2[j];
                    array2[j] = temp;
                }
            }
            cout << array2[i] << " ";
        }
    }
    cout << "\n";*/
 
    cout << "Количество нулей в исходном массиве: " << endl;
    for (int i = 0; i < n; i++)
    {
        if (array3[i] == 0)
        {
            cout << array3[i] << " ";
        }
        else
            cout << "Нулей в исходном массиве нет." << endl; break;
    }
    cout << "\n";
 
    delete[] array1;
    delete[] array2;
    delete[] array3;
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2021, 22:04
Ответы с готовыми решениями:

Сформировать массив, состоящий из отрицательных элементов исходного массива
Дан одномерный массив чисел. Сформировать массив, состоящий из отрицательных элементов исходного массива.

Сформировать массив М, состоящий из элементов исходного массива, кратных 7
Добрый день, уважаемые пользователи кибер форума! У меня возникли затруднения с задачей: &quot;Cформировать массив М, состоящий из...

Из исходного массива сформировать другой массив заменой нулевых элементов
Модифицировать программу , оформив программу в виде трех процедур: ввода, обработки и вывода данных. Program z; Var i, max,N:...

4
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
20.10.2021, 22:13
BeunePp, условие задачи, которую Вам нужно решить написано в коде ?
1
0 / 0 / 0
Регистрация: 06.09.2021
Сообщений: 30
20.10.2021, 22:14  [ТС]
Цитата Сообщение от Yetty Посмотреть сообщение
условие задачи, которую Вам нужно решить написано в коде ?
Да, в 15-18 строках
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
20.10.2021, 22:57
Лучший ответ Сообщение было отмечено BeunePp как решение

Решение

BeunePp, по-разному можно решать. решал бы так (возможно это не оптимально). функциями код не подгружал, чтобы Вам проще было разобраться
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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int m, p=0, n=0, k, u=0, w=0;
    cout << "m="; cin >> m;
    
      int* x = new int[m]; 
    
    cout << "Array:\n";
    for (int i = 0; i < m; i++)
    {
        x[i]=rand()%19 - 9;
        if(x[i]>0) p++;
        else if (x[i]<0) n++;
        cout << x[i] << " ";
    }
    cout << "\n";
    
    k=m-p-n;    
    
    if(p)
    {    
        int* a = new int[p];
        
        for (int i = 0; i < m; i++)
           if(x[i]>0) a[u++]=x[i];
           
        for (int i=0; i<p-1; i++)    
            for (int j=0; j<p-i-1; j++)        
        if (a[j] > a[j+1]) 
        swap(a[j], a[j+1]);
        
        cout << "Positive array:\n";        
        for (int i = 0; i < p; i++)       
           cout << a[i] << " ";
        cout << "\n";   
        delete[] a;  
    }
    else cout << "positive elements are absent\n";
    
    if(n)
    {    
        int* b = new int[n];
        
        for (int i = 0; i < m; i++)
           if(x[i]<0) b[w++]=x[i];
           
        for (int i=0; i<n-1; i++)    
            for (int j=0; j<n-i-1; j++)        
        if (b[j] < b[j+1]) 
        swap(b[j], b[j+1]);
        
        cout << "Negative array:\n";        
        for (int i = 0; i < n; i++)       
           cout << b[i] << " ";
        cout << "\n";
        delete[] b;
    }
    else cout << "negative elements are absent\n";
 
    if(k)
    {    
        int* c = new int[k]();
        
        cout << "Zeros array:\n";        
        for (int i = 0; i < k; i++)       
           cout << c[i] << " ";
        cout << "\n";
        delete[] c;
    }
    else cout << "zeros elements are absent\n";
 
    delete[] x;   
system("pause");
return 0;
}
Добавлено через 5 минут
массив по условию не обязательно целочисленный
1
0 / 0 / 0
Регистрация: 06.09.2021
Сообщений: 30
21.10.2021, 13:07  [ТС]
Цитата Сообщение от Yetty Посмотреть сообщение
k=m-p-n;
Скажите пожалуйста, что означает данная строчка? Я понимаю, что это связано с нулевыми элементами, но не понимаю, как...

Добавлено через 52 минуты
все, я разобрался, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.10.2021, 13:07
Помогаю со студенческими работами здесь

Сформировать новый массив, состоящий из нечетных элементов исходного массива
Ребят, помогите с задачей Сформировать новый массив В, состоящий из нечетных элементов исходного массива. Пример: Исходный массив А: ...

Сформировать новый массив состоящий их различных элементов исходного массива
Дан одномерный массив целых чисел.Сформировать новый массив состоящий их различных элементов исходного массива.Обработку массива в виде...

Сформировать новый массив, состоящий из нечетных элементов исходного массива
Написать программу через подпрограмму (т.е через функцию или процедуру) Сформировать(!) новый массив, состоящий из нечетных элементов...

Сформировать новый массив, состоящий из индексов отрицательных элементов исходного массива
Формировать массив B(n, m) случайных чисел отрезка (-10; 165). Сформировать массив А(k), состоящий из индексов отрицательных элементов...

Сформировать новый массив, состоящий из элементов исходного массива, начинающихся с заданной цифры Z
Дан массив целых положительных чисел. Сформировать новый массив, состоящий из элементов исходного массива, начинающихся с заданной цифры...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru