Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187

Разложение элементов массива

22.03.2014, 21:59. Показов 4467. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Суть задания: 1)я должен ввести любых два массива;
2) сравнить елементы двух массивов;(если итый елемент массива больше чем итий элемент второго массива то тогда первый массив больше второго)
3)елементы которые больше я должен разложить;(разложение делать в большем массиве)
ПРИМЕР
дан массив А(11 10 4 5 )и B(7 4 3 1)получается что 11 больше 7.Расскладываем 10.Разложение 11 это 11 10 9 8 7 7. Тоесть 11 расскладывает на меньшие числа до числа с которым было сравнение и еще раз оно приписывается(в данном случае это(... 7 7) И так должно делать со всеми елементами большего массива массива тоесть потом переход на 10. Смотрим если 10 больше 4 то тогда расскладываем и так далее пока не пройдем весь массив если же допустим первый массив больше но в большем массиве какой-то елемент меньше елемента меньшего массива то пропускаем
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.03.2014, 21:59
Ответы с готовыми решениями:

Разложение положительных элементов
Помогите с задачей пожалуйста. Реализовать нужно на Ассемблере. Задача: Расположить положительные элементы в заданном двумерном...

Задача на разложение массива чисел на положительные
Шеф-повар столовой решила устроить День Уважения к Повару. Для этого она приготовила N необычайно вкусных котлет и втайне постановила, что...

Одномерные массивы. Вставка, удаление элементов массива. Перестановка элементов массива. Сортировка массива методом пузырька
Помогите пожалуйста! Дан массив, состоящий из N букв латинского алфавита а) Заполнить массив датчиком случайных чисел б)...

36
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 01:25  [ТС]
Студворк — интернет-сервис помощи студентам
динамические массивы я понимаю
только вопрос их именно надо будет применить для части где идет разложение?
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
23.03.2014, 01:33
Цитата Сообщение от shukaka Посмотреть сообщение
динамические массивы я понимаю
Что-то ни одного delete закрывающего new я не заметила.

Цитата Сообщение от shukaka Посмотреть сообщение
применить для части
Весь код надо структурировать. Нужно писать функции для подзадач.

Да, и самый последний вопрос)
Ввод матриц обязательно происходит вручную?
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 01:38  [ТС]
да обязательно вручную
а команду delete я планировал написать в самом конце програмы
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
23.03.2014, 01:41
ОК. Все ясно.
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 01:42  [ТС]
так вы мне поможите с кодом?)
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
23.03.2014, 01:46
Да. Но пока -
1
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
23.03.2014, 05:41
Лучший ответ Сообщение было отмечено shukaka как решение

Решение

Вот - можно играться.
Если будут вопросы - спрашиваем.
Буду в эфире ближе к вечеру.

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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include <iostream>
#include <iomanip>
using namespace std;
 
//создаем динамический массив размерностью N, заполняем нулями
int *CreateArray (int N)
{   int *arr = new int [N];
    for (int i = 0; i<N; i++)
        arr[i] = 0;
    return arr;
}
 
//удаляем массив
void DeleteArray (int *arr)
{   delete [] arr;
}
 
//заполняем массив вручную
void FillArray (int *arr, int N)
{   for (int i = 0; i<N; i++)
        cin >> arr[i];
    cin.sync();
}
 
//смотрим на массив
void PrintArray (char name, int *arr, int N)
{   cout << "\nМассив "<< name << "\tРазмерность " << N << '\n';
    for (int i = 0; i<N; i++)
        cout << setw (6) << arr[i];
    cout << '\n';
}
 
//перестановка двух интов
void Swap (int &a, int &b)
{   int temp = a;
    a = b;
    b = temp;
}
 
//сортировка массива по убыванию
void SortArray (int *arr, int N)
{   int i,j;
    for (i = 0; i<N-1; i++)
        for (j = i+1; j<N; j++)
            if (arr[i] < arr[j])
                Swap (arr[i], arr[j]);
}
 
//вставка числа <num> на позицию <pos> в массив <arr> размерностью <N>
//если <pos> равно <N>, работает как Append
void InsertNum (int *&arr, int &N, int num, int pos)
{   if (pos > N)
        return;
    
    int i;
    int *res = CreateArray (N+1);
    for (i = 0; i< pos; i++)
        res[i] = arr[i];
    res[i++] = num;
    for ( ; i<N+1; i++)
        res[i] = arr[i-1];
    N++;
    delete [] arr;
    arr = CreateArray (N);
    for (i = 0; i< N; i++)
        arr[i] = res[i];
    delete [] res;
}
 
//удаляем первый элемент массива
void DeleteFirst (int *&arr, int &N)
{   int i;
    int *res = CreateArray (N-1);
    for (i = 1; i<N; i++)
        res[i-1] = arr[i];
    N--;
    delete [] arr;
    arr = CreateArray (N);
    for (i = 0; i< N; i++)
        arr[i] = res[i];
    delete [] res;
}
 
//ищем минимум двух интов
int Min (int a, int b)
{   return (a<b)? a : b;
}
 
//сравниваем массивы
//0 - если один из массивов (или оба) очистился полностью
//1 - если А больше В
//-1 - если В больше А
int ArrayCmp (int *&A, int &nA, int *&B, int &nB)
{   int n = Min (nA, nB);
    int i = 0;
    while (A[0] == B[0])
    {   DeleteFirst (A, nA);
        DeleteFirst (B, nB);
        --n;
        if (!n)
        return 0;
    }
    
    if (!n)
        return 0;
 
    return (A[i] < B[i])? -1 : 1;
}
 
//преобразуем массивы как указано в техзадании
void RearrangeArrays (int *&Bigger, int &nBigger, int *&Smaller, int &nSmaller)
{   int dif = Bigger[0] - Smaller[0];
    for (int i = 1; i <= dif; i++)
        InsertNum (Bigger, nBigger, Bigger[0] - i, i);
    DeleteFirst (Smaller, nSmaller);
}
 
//------------------------------------------------------------------------------
int main() 
{   setlocale (LC_CTYPE, "Russian");
    
    int *A, *B;
    int nA, nB;
    int check;
 
    cout << "\nМассив А\n";
    cout << "\tРазмерность nA = ";
    cin >> nA;
    A = CreateArray (nA);
    cout << "\tЗначения A[i] (через пробел)\n\t";
    FillArray (A, nA);
    SortArray (A, nA);
 
    cout << "\nМассив B\n";
    cout << "\tРазмерность nB = ";
    cin >> nB;
    B = CreateArray (nB);
    cout << "\tЗначения B[i] (через пробел)\n\t";
    FillArray (B, nB);
    SortArray (B, nB);
    
    printf("\n\nВведены массивы:\n");
    PrintArray ('A', A, nA);
    PrintArray ('B', B, nB);
 
    do
    {   check = ArrayCmp (A, nA, B, nB);
        if (check == 1)
            RearrangeArrays (A, nA, B, nB);
        if (check == -1)
            RearrangeArrays (B, nB, A, nA);
    }   while (check);
    
    SortArray (A, nA);
    SortArray (B, nB);
    printf ("\n\nПосле преобразований:\n");
    PrintArray ('A', A, nA);
    PrintArray ('B', B, nB);
 
    DeleteArray (A);
    DeleteArray (B);
    getchar();
    return 0;
}
Миниатюры
Разложение элементов массива  
2
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 18:23  [ТС]
тут немнгого перебор с колтчеством елементов....
15 надо было разложить на 14 13 12 11 10 9 8 8....тоесть до елемента массива В с которым идет сравнение и 15 уже не пишется
а 9 разложить до 8 7 6 5 4 4(и 9 уже не пишется) тоесть опять же до елемента с котрым идет сравнение
в итоге в ответе должно было быть 14 13 12 11 10 9 8 8 7 6 5 4 2 2 1 1

Добавлено через 7 часов 11 минут
и можете пояснить на словах алгоритм разложения который вы использывали
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
23.03.2014, 19:44
Цитата Сообщение от shukaka Посмотреть сообщение
15 уже не пишется
Цитата Сообщение от shukaka Посмотреть сообщение
9 уже не пишется
До этого вы об этом не говорили.
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 19:46  [ТС]
да точно не говорил...думал писал(
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
23.03.2014, 19:56
15 9 3 2 1

8 4 1

////////////////////

14 13 12 11 10 9 8 9 3 2 1

4 1

///////////////////////////

13 12 11 10 9 8 7 6 5 4 13 12 11 10 9 8 9 3 2 1

1

/////////////////////////////
12 11 10 9 8 7 6 5 4 3 2 1 12 12 11 10 9 8 7 6 5 4 13 12 11 10 9 8 9 3 2 1


//////////////////////////////

13 12 12 12 11 11 11 10 10 10 9 9 9 8 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
23.03.2014, 19:59
И комп со мной согласен
Миниатюры
Разложение элементов массива  
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
23.03.2014, 20:11
Для того, чтобы учесть ваше последнее замечание, допишите в строке 116
C
1
DeleteFirst (Bigger, nBigger);
И еще раз почувствуйте преимущества функционального подхода)
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 20:13  [ТС]
так.....я извеняюсь я вчера не верно написал одну дельку а именно такую,что если есть одинаковые елементы программа должна их сразу сократитить вне зависимости от положения
теперь по вашему предложенному примеру
15 9 3 2 1
8 4 1
\\\\\\\\\\\\\
"14 13 12 11 10 9 8 8"-(роспись 15-ти) 9 3 2
8 4
\\\\\\\\\\\\
14 13 12 11 10 9 8 9 3 2
4
\\\\\\\\\\\\
14 13 12 11 10 9 8 "8 7 6 5 4 4"-(роспись 9-ти) 2
4
\\\\\\\\
конечный ответ
14 13 12 11 10 9 8 8 7 6 5 4 2
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
23.03.2014, 20:18
Что-то еще вспоминаете?
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 20:22  [ТС]
не теперь точно все.

Добавлено через 1 минуту
там просто с этими рл числами куча операций есть.....просто спутал немного....теперь точно верно
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
23.03.2014, 20:28
Допишите функцию DeleteLast и удаляйте последние элементы, если они одинаковы.
Аналоги в представленном коде есть - так что - пилите, Шура, пилите ©
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2014, 20:28

Разложение в ряд, повтор элементов, массив змейкой
Здравствуйте, начал выполнять задания и столкнулся с проблемами,заранее спасибо за помощь : 1)Используя разложение функции в ряд,...

Произведение положительных элементов массива, сумма элементов массива, удаление четных элементов
в одномерном массиве состоящим из n элементов вычислить: произведение положительных элементов массива; сумму элементов массива,...

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

В одномерном массиве, состоящем из n вещественных элементов вычислить минимальный элемент массива и сумму элементов массива. [CPP]
В одномерном массиве, состоящем из n вещественных элементов вычислить минимальный элемент массива и сумму элементов массива, расположенных...

Найти сумму всех элементов массива целых чисел, которые меньше среднего арифметического элементов массива
Помогите пожалуйста найти в чем ошибка? Пишет что арифметическое переполнение! Задание: Найти сумму всех элементов массива целых чисел,...


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

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru