Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
#1

Найти позицию самого правого вхождения - C++

19.09.2013, 01:33. Просмотров 451. Ответов 7
Метки нет (Все метки)

в чем ошибка?
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
#include <iostream>
#include <math.h>
#include <cstdio>
 
using namespace std;
 
int main()
{   freopen("right.in", "r", stdin);
    freopen("right.out","w", stdout);
 
    int n, m;
    int *mas  = new int[n];
    int *mas1 = new int[m];
    int *mas2 = new int[m];
 
 
    cin>>n>>m;
 
    for (int i=0; i<n; i++)
    cin>>mas[i];
 
 
    for (int i=0; i<m; i++ )
    cin>>mas1[i];
 
 
    for (int i=0; i<m+1; i++)
        for (int j=0; j<n; j++)
        {
            if (mas1[i]==mas[j]) mas2[i]=j;
            else mas2[i]=0;
        }
 
 
 
 
 
  for (int i=0; i<m; i++ )
    cout<<mas2[i]+1<<endl;
 
 
    return 0;
}
0
Миниатюры
Найти позицию самого правого вхождения   Найти позицию самого правого вхождения  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2013, 01:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти позицию самого правого вхождения (C++):

Позиция самого правого вхождения строки t в строку s - C++
Задание: Написать программу, выполняющую заданные действия над строками. Написать программу, которая выдает позицию самого правого...

Функция, возвращающая номер самого правого вхождения заданного символа во введенную строку - C++
Нужна помощь в составлении программы: возвращающую номер самого правого вхождения заданного символа во введенную строку. Если символ не...

Функция, определяющая позицию самого первого вхождения заданного символа в исходную строку - C++
Прошу помочь решить задачки!:(очень нужно (Билет №25) Составить функцию, позволяющую определить позицию самого первого вхождения...

Определить координаты самого нижнего и самого правого из отрицательных элементов матрицы - C++
В двумерном массиве имеются отрицательные элементы. Определить координаты самого нижнего и самого правого из них. реализовать через две...

Как найти позицию вхождения строки? - C++
Помогите, пожалуйста, с задачей: Нужно ввести с клавиатуры строку длиной не более 200 символов, ещё одну не более 10 символов и номер...

Функция возвращающая позицию первого вхождения числа в массив - C++
Задача: Написать функцию, которая получает в качестве параметров адрес числового массива данных, его размер и число. Функция...

7
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6511 / 3148 / 308
Регистрация: 04.12.2011
Сообщений: 8,719
Записей в блоге: 5
19.09.2013, 02:56 #2
Цитата Сообщение от delexa Посмотреть сообщение
C++
1
2
3
4
5
int n, m;
 int *mas = new int[n];
 int *mas1 = new int[m];
 int *mas2 = new int[m];
 cin>>n>>m;
Предшествующие открытия потоков нигде не используются
и еще:
чтобы создать массивы надо уже знать их размеры:
C++
1
2
3
4
5
int n, m;
cin>>n>>m;
int *mas = new int[n];
 int *mas1 = new int[m];
 int *mas2 = new int[m];
1
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
19.09.2013, 23:42  [ТС] #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
#include <iostream>
#include <math.h>
#include <cstdio>
 
using namespace std;
 
int main()
{   freopen("right.in", "r", stdin);
    freopen("right.out","w", stdout);
 
    int n, m;
    cin>>n>>m;
 
    int *mas  = new int[n];
    int *mas1 = new int[m];
    int *mas2 = new int[m];
 
    for (int i=0; i<n; i++)
    cin>>mas[i];
 
    for (int i=0; i<m; i++ )
    cin>>mas1[i];
 
    for (int i=0; i<m; i++)
        for (int j=n-1; j>=0; j--)
        {
            if (mas1[i]==mas[j]) { mas2[i]=j+1;  break; }
            else {mas2[i]=0;  }
        }
 
  for (int i=0; i<m; i++ )
    cout<<mas2[i]<<endl;
 
 
    return 0;
}

возникает вопрос. как переписать код, чтобы программа работала быстрее? а то в тесте возникает ошибка "превышено ограничение времени на тесте 9 2000 мс"
0
zer0mail
20.09.2013, 00:02
  #4

Не по теме:

Зачем ТС решение? Если рейтинг повысить - так это будет чужой рейтинг

1
delexa
20.09.2013, 00:19  [ТС]
  #5

Не по теме:

zer0mail, Синтаксис знаю и простые задачки решать вроде получется, а вот с олимпиадными проблема. Хочу набить руку на простых. Как учиться не имея примеров?

0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6511 / 3148 / 308
Регистрация: 04.12.2011
Сообщений: 8,719
Записей в блоге: 5
20.09.2013, 00:27 #6

Не по теме:

Цитата Сообщение от delexa Посмотреть сообщение
Как учиться не имея примеров?
Учитывая допущенные ошибки, не лучше ли порешать не олимпиадные задачи, оставив скорость, как говорят в Одессе, "на потом".

0
zer0mail
2379 / 2010 / 200
Регистрация: 03.07.2012
Сообщений: 7,251
Записей в блоге: 1
20.09.2013, 00:38 #7
delexa, как новичку, дам подсказку: почитайте про бинарные деревья, пощупайте руками, как они устроены и как ими пользоваться. Потом можете использовать их (или готовые контейнеры типа set, map) в задачах
1
delexa
2 / 2 / 1
Регистрация: 02.03.2011
Сообщений: 134
20.09.2013, 01:11  [ТС] #8
zer0mail, Огромное спасибо
0
20.09.2013, 01:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2013, 01:11
Привет! Вот еще темы с ответами:

Функция возвращающая позицию первого вхождения числа в массив - C++
Вот задача: Написать функцию, которая получает в качестве параметров адрес числового массива данных, его размер и число. Функция...

В конец каждой строки дописать позицию первого вхождения символа - C++
как правильно сделать что бы я мог вводить любое количество строк ,а не как у меня только на 4 строки и чтобы с этими строками работала...

Определить позицию первого вхождения в заданную строку какого-либо символа - C++
Помогите составить процедуру, позволяющую определить позицию первого вхождения в заданную строку какого-либо символа из второй заданной...

Вставка элемента в позицию первого вхождения числа, сумма цифр которого кратна 7 - C++
Написал программу с использованием статических и динамических массивов. Пока натолкнулся на такую проблему, что когда мне нужно вставить...


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

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

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