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

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

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

Массивы и циклы: РЛ числа - C++

29.03.2014, 20:03. Просмотров 287. Ответов 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>;
 
#include<locale>
using namespace std;
int rl3[255],k;
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]=-100; 
                       rl2[j]=-100;
     }
        }                                      //отнимание(если елементы рл чисел равны то они сокращаются(в данном случае меняются на ноль))
     for(int j=0;j<b;j++)
         if(rl2[j]!=-100)
                    cout<<rl2[j]<<".";
     cout<<endl;
     for(int i=0;i<a;i++)
         if(rl1[i]!=-100)
                   cout<<rl1[i]<<".";
     cout<<endl;
    int p=1;
    for(int i=0;i<a;i++)
         {   
     if (rl1[i]>rl2[i])
 
        { do {
            
            rl3[k]=rl1[i]-p;
            k++;
                p++;
     
     }
            while(rl3[k]<=rl2[i]);
             }
        }
        for(k=0;k<a*b;k++)
            cout<<rl3[k];
    system ("pause");
    return 0;
}
в чем ошибка....я ввожу 4 5 2 1 0 потом ввожу 4 3 2 1 0 В ответе должен получить 4 3 3 а получаю чет не то совсем
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2014, 20:03     Массивы и циклы: РЛ числа
Посмотрите здесь:

C++ Циклы и линейные массивы
C++ массивы, циклы и т.д
C++ Массивы,указатели,циклы.
Не могу решить циклы и массивы C++
C++ Циклы, массивы, простейшие программы
C++ Циклы и двумерные массивы
Оптимизация кода, массивы и циклы C++
C++ Массивы и циклы
C++ Массивы,циклы,указатели ( пожалуйста)
C++ Массивы структур, циклы
C++ Циклы и двумерные массивы
массивы и Вложенные циклы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pikemaster
293 / 293 / 118
Регистрация: 24.09.2013
Сообщений: 758
Завершенные тесты: 4
29.03.2014, 21:11     Массивы и циклы: РЛ числа #2
Было бы неплохо, если бы вы сказали, что должна делать программа, а не что она выводит.
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
29.03.2014, 21:23  [ТС]     Массивы и циклы: РЛ числа #3
1)вводится два массива
2)эти два массива сравниваются (не играет роли)
3)если есть одинаковые элементы в массивах они удаляются
4)Те элементы что остались в массивах тоже сравниваются и большие расскладываются до значение меньшего елемента
kiborgdelto
70 / 72 / 27
Регистрация: 23.03.2011
Сообщений: 141
29.03.2014, 21:40     Массивы и циклы: РЛ числа #4
C++
1
2
3
4
5
6
7
8
 do {
            
            rl3[k]=rl1[i]-p;
            k++;
                p++;
     
     }
            while(rl3[k]<=rl2[i]);
тут точно ошибка, выход из цикла должен быть таким
C++
1
 while(rl3[k-1]<=rl2[i])
при том условии выхода которое есть цикл прекращается когда мы выходим за границы массива и получаем огромное отрицательное число (у меня вышло на 306 итерации)

плюс ошибка при выводе, ты выводишь неправильное число элементов
C++
1
2
 for(k=0;k<a*b;k++)
            cout<<rl3[k];
должно быть
C++
1
2
 for(int j=0;j<k;j++)
            cout<<rl3[j];
да и 4 3 3 ты тут никак не получишь при таком коде и начальных данных, получается 3 5 4
Yandex
Объявления
29.03.2014, 21:40     Массивы и циклы: РЛ числа
Ответ Создать тему
Опции темы

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