Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
#1

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

22.03.2014, 21:59. Просмотров 846. Ответов 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 то тогда расскладываем и так далее пока не пройдем весь массив если же допустим первый массив больше но в большем массиве какой-то елемент меньше елемента меньшего массива то пропускаем
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2014, 21:59     Разложение элементов массива
Посмотрите здесь:

Найти сумму элементов массива, равных среднему арифметическому всех элементов массива C++
Функции в с++. Найти сумму элементов массива D, а также суммы квадратов и кубов элементов массива D. C++
C++ Найти сумму n первых элементов массива и произвидения m посдедних элементов массива
Удаление четных элементов массива,больших среднего арифметического всех элементов массива C++
Функция должна вычислять разницы между суммой положительных элементов массива и суммой модулей отрицательных элементов массива C++
Каждый из элементов массива заменить средним значением первых элементов этого массива. C++
C++ Каждый из элементов x[SUB]i[/SUB] массива X(n) заменить средним значением первых i элементов этого массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
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)
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
22.03.2014, 22:39  [ТС]     Разложение элементов массива #3
последниее действие не надо так как массив В меньше массива А
IrineK
Заблокирован
22.03.2014, 22:59     Разложение элементов массива #4
Цитата Сообщение от shukaka Посмотреть сообщение
массив В меньше массива А
Почему?
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
22.03.2014, 23:07  [ТС]     Разложение элементов массива #5
как в моем задании делается сравнение массива....вот смотрите дано два массива А(7 3 1 0) и В(7 5 3 )
первые елементы массивов равны....смотрим следующие и видим что уже 5 больше трех а значит масив В в этом случае больше а значит разложение будет в большем массиве...
Разложение происходит в большем массиве потому что препод у нас придумал особенные числа но это уже сосвсем другая история))
суть в том что перед разложением нужно понять какой массив больше а потом разлаживать
IrineK
Заблокирован
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 Посмотреть сообщение
разложение будет в большем массиве.
Это и произошло.
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
22.03.2014, 23:58  [ТС]     Разложение элементов массива #7
определение большего массива делается только один раз тоесть в этом примере 11 больше 10 значит разложение в т олько в первом массиве....если бы было А (11 10 4) иВ (11 10 9) то проверяя какой массив больше оно бы прошло первые два елемента так как они равны дошло до 9 где 9 больше 4 а это значило б что В массив больше чем А
IrineK
Заблокирован
23.03.2014, 00:03     Разложение элементов массива #8
Так, это есно.
А если: А(7 3 1 0) и В(7 3 ), тогда просто ничего не раскладываем?
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
23.03.2014, 00:14  [ТС]     Разложение элементов массива #9
тогда в масив В приписывается два нуля и получается что когда доходит до еденицы то 1 больше чем 0 а значит массив А больше будет чем массив В

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

Два раза "ку" семеркой?
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
23.03.2014, 00:20  [ТС]     Разложение элементов массива #11
это для подальшей операции....у меня не получался только этот фрагмент(само разложение) просто дальше одинаковые числа в мисивах будут сокращаться
IrineK
Заблокирован
23.03.2014, 00:27     Разложение элементов массива #12
А нельзя как-то вкратце изложить цели всего опуса?
Может, удастся избежать ненужных шагов?
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
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;
}
 Комментарий модератора 
Не забывайте обрамлять код тегами
IrineK
Заблокирован
23.03.2014, 00:45     Разложение элементов массива #14
Допустим:
А (10 11 7)
В (10 11 2)

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

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

А теперь чего?
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
23.03.2014, 00:48  [ТС]     Разложение элементов массива #15
правильно)
а теперь сокращаем двойку и получаем ответ 7 6 5 4 3 2
тоесть фактически нужно меньший массив сократить при помощи большего массива
IrineK
Заблокирован
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 )

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

Наверное от большего к меньшему.
Т.е. массивы А и В изначально отсортированы по убыванию?
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
23.03.2014, 01:12  [ТС]     Разложение элементов массива #19
да да поубыванию....ошибся(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2014, 01:23     Разложение элементов массива
Еще ссылки по теме:

C++ Одномерные массивы и указатели (найти количество элементов массива, равных 0, сумму элементов массива...)
В одномерном массиве, состоящем из n целых элементов, 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между C++
C++ В одномерном массиве, вычислить: а) количество элементов массива б) произведение элементов массива в) От - к +
C++ Определить кол-во элементов массива, которые больше среднеарифметического значения всех элементов массива
Определить количество элементов массива, меньших среднего арифметиче-ского значений элементов этого массива C++

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

Или воспользуйтесь поиском по форуму:
IrineK
Заблокирован
23.03.2014, 01:23     Разложение элементов массива #20
Последний вопрос: как у вас с динамическими массивами?
Без них тут никак.
Yandex
Объявления
23.03.2014, 01:23     Разложение элементов массива
Ответ Создать тему
Опции темы

Текущее время: 12:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru