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

Вывод динамического массива

21.09.2018, 17:49. Показов 21155. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Все привет! Столкнулся вот с какой проблемой:
Не получается вывести результат (массив) в 2 таблицы

Сама задача:
Дан одномерный массив целых чисел из N элементов (N вводится). Разработать программу, которая выводит сначала все отрицательные числа этой последовательности, а затем – все положительные. Причем, обе последовательности должны быть отсортированы по возрастанию методом «пузырька». Значения элементов массива формируются случайным образом в диапазоне [-99, 99].

Сама задача работает, не получается только выход (сначала - отрицательные, затем - положительные)

Вот код:
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
// Первая лаба.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "conio.h"
#include <iostream>
#include "ctime"
#include <iomanip>     
 
 
using namespace std;
 
 
int main(){
    srand(time(NULL)) ; // числа генерируются всегда рандомные
        
    int N;
        setlocale(LC_ALL , "Russian");
        cout << "Введите размер массива"<<endl;  // Ввожу количесто элементов в масииве
        cin >> N;
 
        cout << "Созданный массив"<<endl;
    int *arr = new int[N]; // тут создаю динамический массив, плюс еще генерация рандомных чисел
    for (int i=0; i<N; i++ )
  {
        arr[i]=rand()% 199 - 99 ;
  }
        
    for (int i=0; i<N; i++ )
  {
        if (i%10==0)
            cout<<endl;
        cout<<setw(5)<<arr[i]<<' ';
  }
 
    int fig; // временная переменная для обмена элементов местами
 
    // Сортирую массив пузырьком
    for (int i = 0; i < N - 1; i++) {
        for (int j = 0; j < N - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                // меняю элементы местами
                fig = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = fig;
 
            }
 
        }
    }
 
    // Вывод отсортированного массива на экран
            cout<<"\nОтрицательные"<<endl;
   for (int i = 0; i < N; i++) {
        if(arr[i]!=0)
           cout << arr[i] << " ";
   }
 
            cout<<"\nПоложительные"<<endl;
   for (int i = 0; i < N; i++) {
        if(i<N-1 && arr[i]<0 && arr[i+1]>=0)
          cout<<endl;
    }
 
    cout << endl;
        getch();
 
    return 0;
    
}
Прилагаю фото: (красная рамка как должны выводиться отдельно отрицательные и отдельно положительные числа.
Пожалуйста помогите, никак не получается
Миниатюры
Вывод динамического массива  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.09.2018, 17:49
Ответы с готовыми решениями:

Вывод динамического массива
// Импорт файла, создание массива nxm, запись данных в массив; int import_at_matr() { ifstream F; int size_mass; ...

Создание и вывод динамического массива
Как вывести на экран динамический массив? #include&lt;iostream&gt; #include&lt;cstdlib&gt; using namespace std; int main() ...

Вывод динамического массива на консоль
Программа считывает размерность массива из первого файла и заполняет элементами массива второй файл. 1) Как сделать массив A...

6
Злостный нарушитель
 Аватар для Verevkin
10297 / 5720 / 1268
Регистрация: 12.03.2015
Сообщений: 26,494
21.09.2018, 18:01
Чо, неужели не видишь отличий между первым циклом вывода и последними двумя?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
21.09.2018, 22:12
Лучший ответ Сообщение было отмечено Magicspree как решение

Решение

делал по условию (требования выводить по 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
#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n;
    cout <<"n="; cin >>n;
 
    int*a = new int[n];
 
    for (int i = 0; i < n; i++)
      {
      a[i]=rand()%199 - 99;
      cout <<a[i]<<" ";
      }    
    
    for (int i=0; i<n-1; i++)    
    for (int j=0; j<n-i-1; j++)        
      if (a[j] > a[j+1]) 
      swap(a[j], a[j+1]);
      
    cout <<"\nSorted negative elements:\n";  
    for (int i = 0; i < n; i++)      
      if (a[i]<0) cout <<a[i]<<" ";      
 
    cout <<"\nSorted positive elements:\n"; 
    for (int i = 0; i < n; i++)      
      if (a[i]>0) cout <<a[i]<<" ";      
    cout <<endl;
    
    delete[]a;
system("pause");
return 0;
}
1
0 / 0 / 0
Регистрация: 12.09.2017
Сообщений: 200
21.09.2018, 22:40  [ТС]
Спасибо огромное за код, но не получается вставить код в вывод
Все время какие то ошибки
C++
1
2
3
 if (i%10==0)
            cout<<endl;
        cout<<setw(5)<<arr[i]<<' ';
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
22.09.2018, 00:26
Цитата Сообщение от Magicspree Посмотреть сообщение
не получается вставить код в вывод
если нужно выводить по десятку:
C++
1
2
3
4
5
 for (int i = 0; i < n; i++) 
    {
      if (a[i]<0) cout <<a[i]<<" ";
      if (i%10==9) cout <<endl;
    }
для использования setw() добавьте #include <iomanip>
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
22.09.2018, 13:00
или требуется как например в другой задаче
Цитата Сообщение от free space Посмотреть сообщение
Вывод на экран: на каждый элемент массива отвести 10 позиций.
в общем сформулируйте что Вам нужно тогда можно будет определиться с реализацией
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
22.09.2018, 14:18
Лучший ответ Сообщение было отмечено Magicspree как решение

Решение

Красоту с форматированием кода наведешь сам)
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
#include <iostream>
#include <ctime>
#include <iomanip>
 
using namespace std;
 
int
main ()
{
  srand (time (NULL));      
  setlocale (0, "");
 
  int N;
 
  cout << "Введите размер массива" << endl;
  cin >> N;
  cout << endl << "Созданный массив" << endl;
 
  int *arr = new int[N];    
  for (int i = 0; i < N; i++)
    {
      arr[i] = rand () % 199 - 99;
      if (i % 10 == 0)
    cout << endl;
      cout << setw (5) << arr[i] << ' ';
    }
 
 
  int fig;      
  for (int i = 0; i < N - 1; i++)
    {
      for (int j = 0; j < N - i - 1; j++)
    {
      if (arr[j] > arr[j + 1])
        {
          fig = arr[j];
          arr[j] = arr[j + 1];
          arr[j + 1] = fig;
 
        }
 
    }
    }
 
  cout << endl << "\n Отсортированный массив" << endl;
  for (int i = 0; i < N; i++)
    {
      if (i % 10 == 0)
    cout << endl;
      cout << setw (5) << arr[i] << ' ';
    }
 
  fig = 0;
  cout << "\nОтрицательные" << endl;
  for (int i = 0; i < N; i++)
    {
      if (arr[i] < 0)
        {
          fig++;
        cout << setw (5) << arr[i] << ' ';
        if (fig % 10 == 0)
            cout << endl;
        }
    }
 
  fig = 0;
  cout << "\nПоложительные" << endl;
  for (int i = 0; i < N; i++)
  {
      if (arr[i] > 0)
        {
          fig++;
        cout << setw (5) << arr[i] << ' ';
        if (fig % 10 == 0)
            cout << endl;
        }
  }
  cout << endl;
  delete arr[];
  return 0;
 
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.09.2018, 14:18
Помогаю со студенческими работами здесь

Вывод на экран динамического массива
Помогите с заданием Страуструпа Напишите функцию print_array10 (ostream&amp; os , int* а) выводящую в поток os значения из массива а...

Ввод и вывод значения в/из динамического массива
у меня возникла проблема при работе с массивами , когда я вставляю в массив переменную , и вывожу ее , то у меня вместо цифры которая была...

Ввод-вывод двумерного динамического массива
Здраствуйте. Задана задача, в ходе которой нужно ввести динамический массив(каждый елемент с новой строчки), а затем вывести его уже как...

Некорректный вывод одномерного динамического массива
хай гайс написал на кьюти сортировщик действительных чисел массива по убыванию. с положительными числами все ок, а когда ввожу 0 или...

Вывод динамического двумерного массива через функцию
Имею следующий код: void matrix_output (int **matrix, int N) { for (int i=0; i&lt;N; i++) { for...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru