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

Переписать заданный массив в новый так, чтобы сначала шли положительные, затем отрицательные, затем нулевые элементы.

28.09.2019, 20:38. Показов 5636. Ответов 21

Студворк — интернет-сервис помощи студентам
Всем привет, прошу помочь решить ошибку в коде, задание которого звучит как:

Задан массив Z[N]. Переписать его в массив Y так, чтобы в массиве Y сначала шли положительные, затем отрицательные, затем нулевые элементы

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
#include<iostream>
#include<cmath>
using namespace std;
int main ()
{
 setlocale(LC_ALL, "Russian");
 
    unsigned int n, j=0;
    
int *z=new int[n];
cout<<"Введите колво элементов массива z: "; cin>>n;
cout<<endl<<"Введите массив z:"<<endl;
unsigned int k;
    
 
    for (unsigned int i = 0; i<n; i++)
    { 
        cin>>z[i];   
    } 
    int *y=new int[k];
    for (unsigned int i = 0; i<n; i++)
    {
        if(z[i]>0)
        {
            y[j]=z[i];
            j++;
        }
        
    }
     
     for (unsigned int i = 0; i<n; i++)
    {
        if(z[i]<0)
        {
            y[j]=z[i];
            j++;
        }
    }
     
    for (unsigned int i = 0; i<n; i++)
    {
        if(z[j]==0)
        {
            y[j]=z[i];
            j++;
        }
    }
    for (unsigned int i = 0; i<n; i++)
    {
        cout<<"Элементы массива y[k] : "<<y[k]<<endl;
    }
delete [] z;
return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.09.2019, 20:38
Ответы с готовыми решениями:

Получить новый массив, в котором сначала идут положительные числа, затем нулевые, затем отрицательные исходного
дан массив X(N). получить новый массив Y(N), такой, что в нем сначала идут положительные числа, затем нулевые, и затем отрицательные из Х....

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

Сформировать новый массив в котором идут сначала отрицательные элементы, затем нули, затем положительные
Здравствуйте! Помогите пожалуйста! Задание: Дан массив из 10 чисел. Нужно сформировать новый массив в котором сначала идут...

21
5 / 18 / 6
Регистрация: 15.10.2017
Сообщений: 161
29.09.2019, 10:03
Лучший ответ Сообщение было отмечено Princeofsecret как решение

Решение

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Princeofsecret Посмотреть сообщение
Всем привет, прошу помочь решить ошибку в коде, задание которого звучит как:
Задан массив Z[N]. Переписать его в массив Y так, чтобы в массиве Y сначала шли положительные, затем отрицательные, затем нулевые элементы
1.Внимательно прочитайте задачу!
2.Создайте новый проект
3.Скопируйте код в этом посте
4.Протестируйте этот код на наличие ошибок
5.Отпишите результат ваших исследований в эту тему

Код программы которая выполняет решение задачи ==>> Переписать его в массив Y так, чтобы в массиве Y сначала шли положительные, затем отрицательные, затем нулевые элементы
Программа не предусматривает не корректный ввод данных пользователя

-----------------------------------------------------------------------------------
Рекомендации:
1. Рекомендую использовать Visual Studio / Dev C++
-----------------------------------------------------------------------------------

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
#include<iostream>
using namespace std;
int main ()
{
 setlocale(LC_ALL, "Russian");
 
    unsigned int n = 0, j=0;
    
cout<<"Enter max arr z: "; 
cin>>n;
cout<<endl<<"Enter arr z:"<<endl;
 
/*Init arrays*/
 
    int *z=new int[n]();
    int *y=new int[n]();
    
    for(unsigned int i = 0; i < n; i++)
    {
        z[i] = 0;
        y[i] = 0;
    }
 
    for (unsigned int i = 0; i<n; i++)
    { 
        cin>>z[i];   
    } 
    
    for (unsigned int i = 0; i<n; i++)
    {
        if(z[i]>0 && j < n && z[i] != 0)
        {
            y[j]=z[i];
            j++;
        }
        
    }
     
     for (unsigned int i = 0; i<n; i++)
    {
        if(z[i]<0 && j < n && z[i] != 0)
        {
            y[j]=z[i];
            j++;
        }
    }
     
    for (unsigned int i = 0; i<n; i++)
    {
        cout<<"result y[i] : "<<y[i]<<endl;
    }
delete [] z;
return 0;
}
Скриншот работы программы
Миниатюры
Переписать заданный массив в новый так, чтобы сначала шли положительные, затем отрицательные, затем нулевые элементы.  
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
29.09.2019, 10:50
Цитата Сообщение от Princeofsecret Посмотреть сообщение
мне нужно именно с клавы вводить( рандом не катит
просто замените строку рандомного заполнения Z[i]=rand()%19 - 9; строкой ввода с клавиатуры cin >> Z[i];
Цитата Сообщение от Terabiterr Посмотреть сообщение
Лишние проверки для тс не помешает
не могу с Вами согласиться, лишние проверки свидетельствуют о непонимании того что пишет их автор и замедляют работу программы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.09.2019, 10:50

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

Отсортировать вектор так, чтобы сперва шли отрицательные, затем положительные элементы
Дан вектор A(a1,a2,...,a100). Сделать так, чтобы сперва были отрицательные элементы, а затем положительные элементы по порядку. ...

Переписать в массив B сначала отрицательные, а затем положительные элементы исходного массива
Помогите пожалуйста решить эти задачки... 1. Одномерные массивы Переписать в массив B(N) сначала отрицательные, а затем...

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

Сформировать массив так, чтобы сначала шли отрицательные элементы, затем положительные и, наконец, нулевые
HELP! люди срочно требуется ваща помошь, по масивам! вот задача: Задан массив y из n целых чисел. Сформировать массив z так чтобы в...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru