4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
1

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

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

Author24 — интернет-сервис помощи студентам
Суть задания: 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2014, 21:59
Ответы с готовыми решениями:

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

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

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

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

36
Заблокирован
22.03.2014, 22:13 2
То есть так:
А (11 10 4)
В (7 4 9)

11>7
А (11 10 9 8 7 7 10 4)
В (7 4 9)

10>4
А (11 10 9 8 7 7 10 9 8 7 6 6 5 4 4 4)
В (7 4 9)

4<9
А (11 10 9 8 7 7 10 9 8 7 6 6 5 4 4 4)
В (7 4 9 8 7 6 5 4 4)
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
22.03.2014, 22:39  [ТС] 3
последниее действие не надо так как массив В меньше массива А
0
Заблокирован
22.03.2014, 22:59 4
Цитата Сообщение от shukaka Посмотреть сообщение
массив В меньше массива А
Почему?
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
22.03.2014, 23:07  [ТС] 5
как в моем задании делается сравнение массива....вот смотрите дано два массива А(7 3 1 0) и В(7 5 3 )
первые елементы массивов равны....смотрим следующие и видим что уже 5 больше трех а значит масив В в этом случае больше а значит разложение будет в большем массиве...
Разложение происходит в большем массиве потому что препод у нас придумал особенные числа но это уже сосвсем другая история))
суть в том что перед разложением нужно понять какой массив больше а потом разлаживать
0
Заблокирован
22.03.2014, 23:25 6
Цитата Сообщение от IrineK Посмотреть сообщение
4<9
А (11 10 9 8 7 7 10 9 8 7 6 6 5 4 4 4)
В (7 4 9 8 7 6 5 4 4)
Цитата Сообщение от shukaka Посмотреть сообщение
разложение будет в большем массиве.
Это и произошло.
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
22.03.2014, 23:58  [ТС] 7
определение большего массива делается только один раз тоесть в этом примере 11 больше 10 значит разложение в т олько в первом массиве....если бы было А (11 10 4) иВ (11 10 9) то проверяя какой массив больше оно бы прошло первые два елемента так как они равны дошло до 9 где 9 больше 4 а это значило б что В массив больше чем А
0
Заблокирован
23.03.2014, 00:03 8
Так, это есно.
А если: А(7 3 1 0) и В(7 3 ), тогда просто ничего не раскладываем?
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 00:14  [ТС] 9
тогда в масив В приписывается два нуля и получается что когда доходит до еденицы то 1 больше чем 0 а значит массив А больше будет чем массив В

Добавлено через 47 секунд
и да разложение там не будет....мы только можем их сравнить
0
Заблокирован
23.03.2014, 00:18 10
Еще один вопрос: а зачем
11>7
А (11 10 9 8 7 7 10 4)
В (7 4 9)

Два раза "ку" семеркой?
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 00:20  [ТС] 11
это для подальшей операции....у меня не получался только этот фрагмент(само разложение) просто дальше одинаковые числа в мисивах будут сокращаться
0
Заблокирован
23.03.2014, 00:27 12
А нельзя как-то вкратце изложить цели всего опуса?
Может, удастся избежать ненужных шагов?
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 00:35  [ТС] 13
суть всего задание 1.Ввод двух массивов.
2.Их сравнение(какой больше)
3.если изначельно елементы массивов равны то они сокращаются потом происходит разложение( в большем массиве итые елемнты большы итых елементов меньшего массива то происходит разложение). После чего когда уже нечего будет раскладывать сокращаются опять похожые елементы массива(только если третий елемент одного массива равен 4 елементу другого массива то сокращение не будет. сокращение только тогда когда одинаковые позиции)
4. все записывается в один массив и сартируется(по возрастанию от большего к меньшему)
код написан только до 3 действия(без разложения....на нем застрял)
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
#include <iostream>;
 
#include<locale>
using namespace std;
int main() {
    setlocale(LC_ALL,"Rus");
    cout<<"первое рл число"<<endl;
    int a;
    cin>>a;
    int *rl1=new int [a];         //первое рл число
    for(int i=0;i<a;i++)
            cin>> rl1[i];
    cout<<endl;
    cout<<"второе рл число"<<endl;
    int b;
    cin>>b;
    int *rl2=new int [b];                 //второе рл число
    for(int j=0;j<b;j++)
            cin>> rl2[j];
 
    for(int i=0;i<a;i++)
        cout<<rl1[i]<<".";
    cout<<endl;
    for(int j=0;j<b;j++)
        cout<<rl2[j]<<".";
    cout<<endl;
    
    for(int i=0;i<100;i++){
            if (rl1[i]<rl2[i])
                {for(int j=0;j!=b;j++)
                    cout<<rl2[j]<<".";         //сравнение двух рл чисел
                                  break;}
 
            else if(rl1[i]>rl2[i])
            {for(int i=0;i!=a;i++)
                   cout<<rl1[i]<<".";
                   break;}
            
    }
    cout<<endl;
    for(int i=0;i<a;i++)
        for(int j=0;j<b;j++) {   
     if (rl1[i]==rl2[j]) {
                
                      rl1[i]=0; 
                       rl2[j]=0;
     }
        }                                      //(если елементы рл чисел равны то они сокращаются(в данном случае меняются на ноль))
     for(int j=0;j<b;j++)
                    cout<<rl2[j]<<".";
     cout<<endl;
     for(int i=0;i<a;i++)
                   cout<<rl1[i]<<".";
     cout<<endl;
     for(int i=0;i<a;i++)
        for(int j=0;j<b;j++) {   
     if (rl1[i]>rl2[j]) {
 
    system ("pause");
    return 0;
}
 Комментарий модератора 
Не забывайте обрамлять код тегами
0
Заблокирован
23.03.2014, 00:45 14
Допустим:
А (10 11 7)
В (10 11 2)

Сравниваем, попутно сокращаем:
А (7)
В (2)

т.е. А больше В.
Раскладываем
А (7 6 5 4 3 2 2)
В (2)

А теперь чего?
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 00:48  [ТС] 15
правильно)
а теперь сокращаем двойку и получаем ответ 7 6 5 4 3 2
тоесть фактически нужно меньший массив сократить при помощи большего массива
0
Заблокирован
23.03.2014, 00:55 16
А если так:
А (10 11 7)
В (10 11 2 5)

Сравниваем, попутно сокращаем:
А (7)
В (2 5 )

т.е. А больше В.
Раскладываем
А (7 6 5 4 3 2 2)
В (2 5 )

А теперь чего?
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 01:00  [ТС] 17
2 5 не может быть потому что рл числа идут от меньшего к большему тоесть 5 2.....
потом семь раскладывается на 6 5 5,после чего сокращанение 5-ти и так жесамо с двойкой
0
Заблокирован
23.03.2014, 01:06 18
Лучший ответ Сообщение было отмечено shukaka как решение

Решение

Цитата Сообщение от shukaka Посмотреть сообщение
числа идут от меньшего к большему то есть 5 2
По-вашему 5 меньше 2?

Наверное от большего к меньшему.
Т.е. массивы А и В изначально отсортированы по убыванию?
0
4 / 4 / 4
Регистрация: 09.03.2014
Сообщений: 187
23.03.2014, 01:12  [ТС] 19
да да поубыванию....ошибся(
0
Заблокирован
23.03.2014, 01:23 20
Последний вопрос: как у вас с динамическими массивами?
Без них тут никак.
0
23.03.2014, 01:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2014, 01:23
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru