Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
maksvolf96
3 / 3 / 2
Регистрация: 18.05.2014
Сообщений: 203
1

Нужен совет по программе

24.01.2015, 02:16. Просмотров 223. Ответов 2
Метки нет (Все метки)

Здравствуйте, есть задача, дано 2 массива, первый-упорядочен по возрастанию, второй-контейнер элементов, индексы нахождения которых в 1 массиве(начальный , конечный) нужно найти.

Вот код, вроде рабочий, но на деле нет:

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 <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int N,K;
    int help;
 
    cin >> N >> K;
 
    vector <int> intN; //исходный контейнер
 
    vector <int> intK; //массив элементы которого ищутся в intN
 
    for(int i=0; i<N; i++)
    {
        cin >> help;
        intN.push_back(help);
    }
 
    for(int i=0; i<K; i++)
    {
        cin >> help;
        intK.push_back(help);
    }
 
    for(vector <int>::iterator i=intK.begin(); i<intK.end(); i++) //первый вариант поиска
 
    {
        vector<int>::iterator upperHelp=upper_bound(intN.begin(),intN.end(),*i);
        vector<int>::iterator lowerHelp=lower_bound(intN.begin(),intN.end(),*i);
        if(*i==intN[*upperHelp])
            cout <<*upperHelp << ends <<*lowerHelp << endl;
    }
 
    for (int i=0;i<intK.size();i++){    //второй вариант поиска
        vector<int>::iterator upperHelp=upper_bound(intN.begin(),intN.end(),intK[i]);
        vector<int>::iterator lowerHelp=lower_bound(intN.begin(),intN.end(),intK[i]);
        if(intK[i]==intN[*upperHelp])
            cout << cout << *upperHelp << ends << *lowerHelp << endl;
    }
 
 
}
Код аварийно завершается
Не могли бы вы ,пожалуйста, посоветовать что-нибудь?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2015, 02:16
Ответы с готовыми решениями:

Нужен совет в программе!
Програма такого типа: 1.Вивести в левый угол екрана компютера в столбик 5 слов разного цвета!...

Нужен совет по простенькой программе
Нужно открыть файл, записать туда 3 строки и закрыть файл. Препод сказал, что вместо cout должен...

Нужен совет, доработка по программе (матрица)
Задаём матрицу 6x6, заполняем числами, если есть повторяющиеся выводим максимальное из них на...

Очень нужен совет где найти ошибки в программе
//Obrabotka rezulitatov sessii s ispolizovaniem functii #include&lt;iostream&gt; #include&lt;iomanip&gt;...

Совет по программе
Здравствуйте! Так уж получилось, что никогда ничего такого не программировал, но сделать надо....

2
rikimaru2013
C++ Game Dev
2475 / 1143 / 349
Регистрация: 30.11.2013
Сообщений: 3,709
24.01.2015, 02:33 2
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
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
#define size 30
int main()
{
    vector <int> all; 
    vector <int> lookingFor; 
 
    for ( int i = 0; i<size; i+= 2 )
    {       
        all.push_back(i);
    }
    lookingFor.push_back(8);
    lookingFor.push_back(16);
    lookingFor.push_back(24);
    lookingFor.push_back(244);
 
    
    
    if ( !lookingFor.empty() )
    {
        for ( auto it = lookingFor.begin(); it != lookingFor.end(); it++ )
        {
            auto tmp = find(all.begin(), all.end(), (*it));
            if ( tmp != all.end() )
            {
                //нашёлся
                cout << "Founded " << (*it) << " index " << std::distance(all.begin(), tmp) << endl;
            }
        }
    }
}
Первое вхождение.
1
maksvolf96
3 / 3 / 2
Регистрация: 18.05.2014
Сообщений: 203
24.01.2015, 03:17  [ТС] 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
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int N,K;
    int help;
 
    cin >> N >> K;
 
    vector <int> intN; //исходный контейнер
 
    vector <int> intK; //массив элементы которого ищутся в intN
 
    for(int i=0; i<N; i++)
    {
        cin >> help;
        intN.push_back(help);
    }
 
    for(int i=0; i<K; i++)
    {
        cin >> help;
        intK.push_back(help);
    }
 
   /* for(vector <int>::iterator i=intK.begin(); i<intK.end(); i++) //ошибочный вариант
 
    {
        vector<int>::iterator upperHelp=upper_bound(intN.begin(),intN.end(),*i);
        vector<int>::iterator lowerHelp=lower_bound(intN.begin(),intN.end(),*i);
        if(*i==intN[*upperHelp])
            cout <<*upperHelp << ends <<*lowerHelp << endl;
    }
 
    for (int i=0;i<intK.size();i++){    //ошибочный вариант
        vector<int>::iterator upperHelp=upper_bound(intN.begin(),intN.end(),intK[i]);
        vector<int>::iterator lowerHelp=lower_bound(intN.begin(),intN.end(),intK[i]);
        if(intK[i]==*upperHelp)
            cout <<upperHelp-intN.begin() << ends << lowerHelp-intN.begin() << endl;
    }*/
 
     for(vector <int>::iterator i=intK.begin(); i<intK.end(); i++) //первый вариант поиска через разность ссылок
 
    {
        vector<int>::iterator upperHelp=upper_bound(intN.begin(),intN.end(),*i);
        vector<int>::iterator lowerHelp=lower_bound(intN.begin(),intN.end(),*i);
        if(*i==*lowerHelp)
        cout <<upperHelp-intN.begin() << ends << lowerHelp-intN.begin() << endl;
    }
 
 
    for(auto it=intK.begin();it<intK.end();it++){ //второй вариант через разность ссылок
        auto lowerHelp=lower_bound(intN.begin(),intN.end(),*it);
        auto upperHelp=upper_bound(intN.begin(),intN.end(),*it);
        if(*it==*lowerHelp)
            cout << lowerHelp-intN.begin()+1 << " " <<upperHelp-intN.begin()-1+1 <<endl;
        else
            cout << 0 <<endl;
    }
 
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2015, 03:17

Нужен совет
Всем добрый день. Кто нибудь может поделиться компилятором Турбо Си++ или каким нибудь другим...

Нужен совет
Последний раз прогал очень давно, уже подзабыл, нужен совет. Дан текстовый файл, в котором имеется...

Нужен совет:
я учусь в 2-ом курсе на программиста у меня есть базовые знание c++,STL до сих пор работал...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru