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

Сгенерировать одномерный массив A в диапазоне [-20; 20] и сформировать новый массив B из отрицательный элементов массива

26.03.2018, 21:36. Показов 3032. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите, пожалуйста, дорешать задачу.

Нужно сгенерировать одномерный массив A в диапазоне [-20; 20] и сформировать новый массив B из отрицательный элементов массива А. Упорядочить массив В по возрастанию.

Задача решена правильно, проблемы начинаются на сортировке. Для нее нужно ввести размер B, но он не известен, т.к. действует randomize. Сейчас у меня прописано 15, но этого конечно неправильно.В интернете пишут про использование вектора и динамические массивы, но у меня ничего не получилось. Borland попросту не распознает vector, а такое решение принимает как ошибку :
C++
1
2
int size;
int *B = new int[size];
Подскажите, как можно прописать массив B в Borland, желательно максимально просто.

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
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define STAR printf("\n*******************************\n");
#include<windows.h>
main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
clrscr();
int A[15];
int B[15];
int i,j,d1,d2,b,k;
randomize();
printf("Диапазон:\n ");
scanf("%5d%5d",&d1,&d2);
for (i=0; i<15; i++ )
      A[i]=random(d2-d1+1)-d2;
printf("Массив А:\n");
for(i=0;i<15;i++)
    printf("A[%d]=%d\n",i,A[i]);
STAR;
printf("Массив B:\n");
j=0;
for(i=0; i<15; i++)
    if (A[i]<0)
       {
       j++;
       B[j]=A[i];
       printf("B[%d]=%d\n",j,B[j]);
       }
STAR;
printf("Массив B упорядочен по возрастанию:\n");
    for (j=0; j < 15-1; j++) {
        for (k=0; k <15-j-1; k++) {
            if (B[k] > B[k+1]) {
                b = B[k];
                B[k] = B[k+1];
                B[k+1] = b;
            }
        }
    }
for(j=0; j<15; j++)
printf("B[%d]=%d\n",j,B[j]);
system("pause>>null");
getchar();
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.03.2018, 21:36
Ответы с готовыми решениями:

Дан двумерный массив. Сформировать одномерный массив из элементов заданного массива, расположенных под побочной диагональю.
Дан двумерный массив размером n x n. Сформировать: Одномерный массив из элементов заданного массива, расположенных под побочной...

Дан двумерный массив размерностью Н. сформировать одномерный массив из элементов заданного массива расположенных над главной диагональю.
помогите решить=)Дан двумерный массив размерностью Н. сформировать одномерный массив из элементов заданного массива расположенных над ...

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

7
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
26.03.2018, 21:41
Kiberia, можно вектором, а можно создать динамический массив.

C++
1
2
3
4
5
int *b = new int[n]; // n - число отрицательных элементов массива A
 
// ...
 
delete[] b;
0
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 16
26.03.2018, 21:49  [ТС]
Цитата Сообщение от QuakerRUS Посмотреть сообщение
Kiberia, можно вектором, а можно создать динамический массив.

C++
1
2
3
4
5
int *b = new int[n]; // n - число отрицательных элементов массива A
 
// ...
 
delete[] b;
У меня выдает : Undefined symbol 'n'
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
26.03.2018, 21:51
Kiberia, так объявите переменную с таким именем, посчитайте в нее количество отрицательных элементов. После этого создаете массив этим кодом.
0
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 16
26.03.2018, 21:56  [ТС]
Цитата Сообщение от QuakerRUS Посмотреть сообщение
Kiberia, так объявите переменную с таким именем, посчитайте в нее количество отрицательных элементов. После этого создаете массив этим кодом.
Простите, для меня это еще слишком сложно. Я ищу более развернутое объяснение, где мне на моем примере покажут как это можно сделать.
0
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
26.03.2018, 22:05
Kiberia,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
int a[15];
int b[15];
...
где-то тут рандомизируем и заполняем массив а
...
for (size_t i = 0, j = 0; i < size; ++i)
    {
        if (a[i] < 0)
        {
            b[j] = a[i];
            ++j;
        }
    }
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
26.03.2018, 22:19
Лучший ответ Сообщение было отмечено Kiberia как решение

Решение

Kiberia, вместо строк 24-31

C++
1
2
3
4
5
6
7
8
9
10
11
12
    for (i = 0; i<15; i++)
        if (A[i]<0)
            size++;
    int *b = new int[j];
    j = 0;
    for (i = 0; i<15; i++)
        if (A[i]<0)
        {
            B[j] = A[i];
            printf("B[%d]=%d\n", j, B[j]);
            j++;
        }
После 44й

C++
1
delete[] B;
Добавлено через 3 минуты
Вместо 13й строки

C++
1
    int i, j, d1, d2, b, k, size = 0;
Добавлено через 3 минуты
Обновил текст. И там где сортируете 15 замените на size
1
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 16
26.03.2018, 22:32  [ТС]
Огромное вам спасибо ! Все получилось
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.03.2018, 22:32
Помогаю со студенческими работами здесь

Массив: Создать новый массив из элементов исходного в диапазоне от -50 до 50...
Есть задание: Сгенерировать и вывести на экран массив из целого числа n случайных чисел от -120 до 120. Создать новый массив из элементов...

Сформировать одномерный массив случайными числами в диапазоне [-1; 1]
3. Сформировать одномерный массив случайными числами в диапазоне и вывести его на экран. Использовать только стандартные и простые...

Сформировать новый массив B, состоящий из элементов массива A, которые превышают X
Если по заданию дано число массив или массивы, то их значения получать от пользователя и при необходимости выполнять проверку правильности...

Сформировать новый массив из чётных значений элементов исходного массива
Дан массивА(30). Сформировать новый массив из четных значений элементов массива A на языке С++

Сформировать одномерный массив из минимальных значений элементов столбцов двумерного массива
Написать программу на С++. Нужно, чтобы программа сформировала одномерный массив из минимальных значений элементов столбцов двумерного...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru