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

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

Восстановить пароль Регистрация
 
Petar07
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 93
13.04.2013, 00:14     Вывод слов из предложения в обратном порядке #1
Есть некоторое предложение в файле, оно записывается в массив, показывается на экране, а затем нужно вывести слова в обратном порядке, не получается что то
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
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;
}
Petar07
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 93
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;
}
выводится пустое окно и все
yutr777
 Аватар для yutr777
4 / 4 / 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;
}
не пашет((
Помогите решить парни, спасибо всем заранее
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
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();
Petar07
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 93
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();
теперь все работаееет спасибо огромное
Yandex
Объявления
13.04.2013, 01:26     Вывод слов из предложения в обратном порядке
Ответ Создать тему
Опции темы

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