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

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

Войти
Регистрация
Восстановить пароль
 
Vitiok
4 / 4 / 1
Регистрация: 17.01.2012
Сообщений: 70
#1

Найти количество стрел - C++

15.07.2012, 15:39. Просмотров 855. Ответов 3
Метки нет (Все метки)

Задана последовательность, состоящая только из символов ‘>’, ‘<’ и ‘-‘. Требуется найти количество стрел, которые спрятаны в этой последовательности. Стрелы – это подстроки вида ‘>>-->’ и ‘<--<<’.
Входные данные

В первой строке входного файла INPUT.TXT записана строка, состоящая из символов ‘>’, ‘<’ и ‘-‘ (без пробелов). Строка состоит не более, чем из 250 символов.
Выходные данные

В единственную строку выходного файла OUTPUT.TXT нужно вывести искомое количество стрелок.

Пример
<<<<>>--><--<<--<<>>>--><<<<< 4

я делал так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    int k=0;
    string str;
 
    cin>>str;
 
    if(str.find(">>-->") == string::npos || str.find("<--<<") == string::npos)
 
    cout<<k;
 
    system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2012, 15:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти количество стрел (C++):

Найти количество стрел ( ‘>>-->’ и ‘<--<<’ ) в строке - C++
Задана последовательность, состоящая только из символов ‘&gt;’, ‘&lt;’ и ‘-‘. Требуется найти количество стрел, которые спрятаны в этой...

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

Найти количество символов в строке, найти заданные буквы, разделить количество букв на количество символов - C++
Написать код который сперва подсчитывает количество символов в строке а потом из этих находит буквы (a,e,y,u,i) и делит количество букв на...

В файле с целыми числами найти количество парных, количество удвоенных нечетных, количество квадратов нечетных - C++
Задано файл, компонентами которого являются целые числа. Найти: a) количество парных среди компонент файла; b) количество...

Найти количество пятниц с 1 января 2001 по 31 декабря 2010. И найти количество пятниц, 13 - C++
Если кто знает как решить помогите

Найти через индекс количество отрицательных и количество положительных элементов массива - C++
Нужно найти через индекс количество отрицательных и количество положительных элементов.

3
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.07.2012, 17:21 #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
#include <iostream>
#include <string>
using namespace std;
 
int fcount(const string &str, const char* sub)
{
    int k = 0;
    for (int pos = 0; pos != str.npos; )
    {
        pos = str.find(sub, pos);
        if (pos != str.npos)
        {
            k++;
            pos = pos + (strlen(sub) - 1);
        }
     }
    return k;
}
 
int main()
{
    int k1, k2;
    string str;
    
    cin >> str;
    
    k1 = fcount(str, ">>-->");
    k2 = fcount(str, "<--<<");
    
    cout << k1 + k2 << endl;
    
    system("pause");
    return 0;
}
1
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
15.07.2012, 17:25 #3
Цитата Сообщение от Vitiok Посмотреть сообщение
Задана последовательность, состоящая только из символов ‘>’, ‘<’ и ‘-‘. Требуется найти количество стрел, которые спрятаны в этой последовательности. Стрелы – это подстроки вида ‘>>-->’ и ‘<--<<’.
Входные данные

В первой строке входного файла INPUT.TXT записана строка, состоящая из символов ‘>’, ‘<’ и ‘-‘ (без пробелов). Строка состоит не более, чем из 250 символов.
Выходные данные

В единственную строку выходного файла OUTPUT.TXT нужно вывести искомое количество стрелок.

Пример
<<<<>>--><--<<--<<>>>--><<<<< 4

я делал так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    int k=0;
    string str;
 
    cin>>str;
 
    if(str.find(">>-->") == string::npos || str.find("<--<<") == string::npos)
 
    cout<<k;
 
    system("pause");
}
Не понимаю, что тут сделал? Ибо условие, во-первых, проверит наличие стрелы только один раз, во-вторых, выведет 0 даже тогда, когда стрела есть.
* Повторюсь который раз - олимпиадные задачи решаются индивидуально, а не на форумах. Что ж вас так с acmp сюда тянет >_<" *

Я решал это так :
1) В цикле находил стрелки
2) Если стрелка найдена, прибавлял к счетчику 1 и первый символ стрелки изменял на цифру '0' (теперь он найдет следующую стрелку, а эту уже не найдет, ибо я её "разрушил")
Как только оба указателя стрелок (после их нахождения *я использовал strstr и char[]*) будут равны NULL, то выходим из цикла
3) Выводим счетчик

Скинул бы код, да нет возможности сейчас
1
mlepehin
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 6
31.01.2013, 21:10 #4
Вот код задачи:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <fstream>
#include <cstdlib>
#include <string>
#include <iostream>
using namespace std;
int main()
{
ifstream cin("input.txt");
ofstream cout("output.txt");
string str;
int c=0;
cin>>str;
for(int i=0;i<str.length();i++){
if(str[i]=='>'){
if(str[i+1]=='>'&&str[i+2]=='-'&&str[i+3]=='-'&&str[i+4]=='>'){c=c+1;}                
}  
if(str[i]=='<'){
if(str[i+1]=='-'&&str[i+2]=='-'&&str[i+3]=='<'&&str[i+4]=='<'){c=c+1;}                
}      
}
cout<<c;
return 0;
}
Здесь всё гораздо понятнее
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2013, 21:10
Привет! Вот еще темы с ответами:

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

Найти количество положительных и количество отрицательных чисел в исходном наборе - C++
Даны три целых числа. Найти количество положительных и количество отрицательных чисел в исходном наборе.

Даны три целых числа. Найти количество положительных и количество отрицательных чисел - C++
Даны три целых числа. Найти количество положительных и количество отрицательных чисел в исходном наборе. Ввод чисел и вывод результата...

Определить количество положительных и количество отрицательных элементов до первого нуля. Найти ошибку в коде - C++
В маcсиве A(n) (n&lt;=7) хотя бы один элемент ноль. Определить количество положительных и количество отрицательных элементов до первого нуля! ...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
31.01.2013, 21:10
Ответ Создать тему
Опции темы

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