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

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

Войти
Регистрация
Восстановить пароль
 
Petar07
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 99
#1

Вывод слов из предложения в обратном порядке - C++

13.04.2013, 00:14. Просмотров 766. Ответов 5
Метки нет (Все метки)

Есть некоторое предложение в файле, оно записывается в массив, показывается на экране, а затем нужно вывести слова в обратном порядке, не получается что то
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 00:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод слов из предложения в обратном порядке (C++):

Вывод последовательности слов предложения в обратном порядке - C++
Суть задания - вывести на экран последовательность слов в предложении в обратном порядке. К примеру: вместо "Good day" вывести "day Good"....

Вывод предложения в обратном порядке С++ - C++
Надо сделать так что бы программа выводила слова из предложения в обратном порядке

Вывод слов в обратном порядке - C++
Всем привет. Мне нужно вывести слова в обратном порядке. У меня есть строка "cannot load data". нужно сделать так, что бы выводило "data...

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
abit
262 / 261 / 33
Регистрация: 03.02.2013
Сообщений: 722
13.04.2013, 00:43 #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
36
37
38
39
40
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
 
int main ()
{
            std::vector<std::string> words;
            
            std::ifstream filestr;
            filestr.open("myfile.txt");
            
            char c;
            std::string word;
            while (filestr.good())
            {
              c = filestr.get();
              if (!isspace(c))
                 word+=c;
              else
                  {
                     words.push_back(word);
                     word="";
                  }
            }
            
            for (std::vector<std::string>::iterator it = words.begin();
                 it != words.end(); ++it)
                 std::cout << *it << " ";
                 
            std::cout<<std::endl<<std::endl<<std::endl;
            
             for (std::vector<std::string>::reverse_iterator it = words.rbegin();
                 it != words.rend(); ++it)
                 std::cout << *it << " ";
                 
            std::cout<<std::endl;
            system("pause");
            return 0;
}
1
Petar07
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 99
13.04.2013, 01:18  [ТС] #3
Я создал данный файл в каталоге программы но она не работает, выводит пустое окно, в файле запись сделал

Добавлено через 26 минут
Цитата Сообщение от abit Посмотреть сообщение
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
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
 
int main ()
{
            std::vector<std::string> words;
            
            std::ifstream filestr;
            filestr.open("myfile.txt");
            
            char c;
            std::string word;
            while (filestr.good())
            {
              c = filestr.get();
              if (!isspace(c))
                 word+=c;
              else
                  {
                     words.push_back(word);
                     word="";
                  }
            }
            
            for (std::vector<std::string>::iterator it = words.begin();
                 it != words.end(); ++it)
                 std::cout << *it << " ";
                 
            std::cout<<std::endl<<std::endl<<std::endl;
            
             for (std::vector<std::string>::reverse_iterator it = words.rbegin();
                 it != words.rend(); ++it)
                 std::cout << *it << " ";
                 
            std::cout<<std::endl;
            system("pause");
            return 0;
}
выводится пустое окно и все
0
yutr777
5 / 5 / 0
Регистрация: 07.04.2013
Сообщений: 85
13.04.2013, 01:18 #4
Как-то раз Поликарп захотел узнать, кто из секретарей разговаривает по Spyke, а кто — нет. Он выписал для каждого секретаря номер сессии его разговора, или 0, если этот секретарь сейчас не разговаривает по Spyke.

Помогите Поликарпу по этим данным определить, сколько пар секретарей сейчас ведут разговор. Если в данные Поликарпа закралась ошибка, и описанная ситуация никак не могла произойти, требуется сообщить об этом.

Обратите внимание, секретари могут разговаривать по Spyke не только друг с другом — возможны разговоры с внешними собеседниками. Также не разрешены конференции Spyke — то есть в каждом разговоре должны участвовать ровно два собеседника.

Входные данные
В первой строке записано целое число n (1 ≤ n ≤ 103) — количество секретарей в корпорации Поликарпа. В следующей строке записаны n целых чисел через пробел: id1, id2, ..., idn (0 ≤ idi ≤ 109). Число idi равно номеру сессии разговора секретаря номер i, если он разговаривает в данный момент по Spyke, или равно нулю, в противном случае.

Считайте, что секретари пронумерованы от 1 до n некоторым образом.

Выходные данные
Выведите единственное целое число — количество пар секретарей, которые ведут разговор, или -1, если в данные Поликарпа закралась ошибка, и описанная ситуация никак не могла произойти.

Примеры тестов
входные данные
6
0 1 7 1 7 10
выходные данные
2
входные данные
3
1 1 1
выходные данные
-1
входные данные
1
0
выходные данные
0
Примечание
В первом тестовом примере есть два телефонных разговора между секретарями: секретарь номер 2 и секретарь номер 4, секретарь номер 3 и секретарь номер 5.

Во втором тестовом примере описанная ситуация невозможна, так как не разрешены конференции.

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
#include <iostream>
#include <algorithm>
 
typedef long long ll;
 
using namespace std;
 
int main()
{
ll ans=0,n,dl=1,x;
cin >> n;
ll a[10000]={0};
for (int i=0;i<n;i++)
{
    cin >> a[i];
}
sort(a,a+n);
for (int i=1;i<n;i++)
{
    if (a[i]==a[i-1]){dl++;continue;}
    if (a[i]!=a[i-1]){
                      if (dl==2 && a[i-1]!=0){ans++;}
                      if (dl>2 && a[i-1]!=0) {ans=-1;break;} 
                      dl=1;
                      }
}
if (dl==2 && a[n-1]!=0){ans++;}
if (dl>2) {ans=-1;} 
cout << ans;   
return 0;
}
не пашет((
Помогите решить парни, спасибо всем заранее
0
abit
262 / 261 / 33
Регистрация: 03.02.2013
Сообщений: 722
13.04.2013, 01:20 #5
может вы что-то напутали?

у меня всё работает


вот немного исправил алгоритм

и добавил кусок, который создаст этот файл

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 <fstream>
#include <string>
#include <vector>
 
int main ()
{
           std::ofstream fout;
           fout.open("test.txt");
           fout << "My test words in this file";
           fout.close();
           
            std::vector<std::string> words;
            
            std::ifstream filestr;
            filestr.open("test.txt");
            
            char c;
            std::string word;
            while (filestr.good())
            {
              c = filestr.get();
              if (!isspace(c))
                 word+=c;
              else
                  {
                     words.push_back(word);
                     word="";
                  }
            }
            if (word.size()) words.push_back(word);
            
            for (std::vector<std::string>::iterator it = words.begin();
                 it != words.end(); ++it)
                 std::cout << *it << " ";
                 
            std::cout<<std::endl<<std::endl<<std::endl;
            
             for (std::vector<std::string>::reverse_iterator it = words.rbegin();
                 it != words.rend(); ++it)
                 std::cout << *it << " ";
                 
            std::cout<<std::endl;
            filestr.close();
            system("pause");
            return 0;
}

как создастся (после первого запуска)

этот кусок можно удалить:
C++
1
2
3
4
std::ofstream fout;
           fout.open("test.txt");
           fout << "My test words in this file";
           fout.close();
1
Petar07
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 99
13.04.2013, 01:26  [ТС] #6
Цитата Сообщение от abit Посмотреть сообщение
может вы что-то напутали?

у меня всё работает


вот немного исправил алгоритм

и добавил кусок, который создаст этот файл

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 <fstream>
#include <string>
#include <vector>
 
int main ()
{
           std::ofstream fout;
           fout.open("test.txt");
           fout << "My test words in this file";
           fout.close();
           
            std::vector<std::string> words;
            
            std::ifstream filestr;
            filestr.open("test.txt");
            
            char c;
            std::string word;
            while (filestr.good())
            {
              c = filestr.get();
              if (!isspace(c))
                 word+=c;
              else
                  {
                     words.push_back(word);
                     word="";
                  }
            }
            if (word.size()) words.push_back(word);
            
            for (std::vector<std::string>::iterator it = words.begin();
                 it != words.end(); ++it)
                 std::cout << *it << " ";
                 
            std::cout<<std::endl<<std::endl<<std::endl;
            
             for (std::vector<std::string>::reverse_iterator it = words.rbegin();
                 it != words.rend(); ++it)
                 std::cout << *it << " ";
                 
            std::cout<<std::endl;
            filestr.close();
            system("pause");
            return 0;
}

как создастся (после первого запуска)

этот кусок можно удалить:
C++
1
2
3
4
std::ofstream fout;
           fout.open("test.txt");
           fout << "My test words in this file";
           fout.close();
теперь все работаееет спасибо огромное
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2013, 01:26
Привет! Вот еще темы с ответами:

Вывести предложения в обратном порядке - C++
Ребят помогите, как написать программу, чтобы при вводе предложений он выводил их в обратном порядке. Без текстового файла. Пример:...

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

Считать три предложения и вывести их в обратном порядке - C++
Программа , которая считывает три предложения и выводит их в обратном порядке. ребят помогите очень надо..

Считать в строку три предложения в вывести их в обратном порядке - C++
Считать в строку три предложения в вывести их в обратном порядке #include&lt;conio.h&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; ...


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

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

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