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

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

Войти
Регистрация
Восстановить пароль
 
ArsLoko
0 / 0 / 0
Регистрация: 01.04.2013
Сообщений: 18
#1

Последовательность слов в обратном порядке - C++

21.11.2013, 23:06. Просмотров 561. Ответов 13
Метки нет (Все метки)

Только начинаю разбираться с программированием и не всегда улавливаю как воплотить алгоритм в программе. Помогите сделать такую вот задачку: Дано предложение, представляющее собой последовательность слов, разделенных за-пятой. Напечатать эту последовательность слов в обратном порядке (напр., «hello, world» -> «world hello»).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 23:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Последовательность слов в обратном порядке (C++):

Вывести последовательность слов в обратном порядке - C++
Розробити алгоритм і програму для виводу на екран дисплея введеної послідовність слів в зворотному порядку. #include <iostream> ...

Вывести последовательность слов в обратном порядке. - C++
8.3.1. Помогите, пожалуйста, решить задачу в С++. Дана строка. Группы символов, разделённые пробелами (одним или несколькими) и...

Напечатать ту же последовательность слов, что и в исходном тексте, но в обратном порядке - C++
Задан текст. Между словами - пробел, за последним символом - точка. Напечатать ту же последовательность слов, но в обратном порядке.

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

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

Рекурсия: вывести данную последовательность в обратном порядке - C++
Дано натуральное число N и последовательность N элементов. Вы должны вывести данную последовательность в обратном порядке. Ввод ...

13
ABKA
7 / 7 / 0
Регистрация: 06.11.2013
Сообщений: 50
21.11.2013, 23:07 #2
Тебе объяснить как, или написать?
0
ArsLoko
0 / 0 / 0
Регистрация: 01.04.2013
Сообщений: 18
21.11.2013, 23:09  [ТС] #3
ABKA, лучше конечно написать, я вроде понимаю как решить, но вот реализовать не могу, мб из-за недостаточного знания языка..
0
ABKA
7 / 7 / 0
Регистрация: 06.11.2013
Сообщений: 50
21.11.2013, 23:10 #4
Минут через 10 напишу
0
ArsLoko
0 / 0 / 0
Регистрация: 01.04.2013
Сообщений: 18
21.11.2013, 23:41  [ТС] #5
ABKA, спасибо, я пока сам пытаюсь, мб чего додумаюсь)

Добавлено через 27 минут
ни у кого вариантов нету?
0
ABKA
7 / 7 / 0
Регистрация: 06.11.2013
Сообщений: 50
22.11.2013, 00:16 #6
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
#include <iostream>
#include <fstream>
#define MAX_WORDSN 100
using namespace std;
int main() 
{
    setlocale(LC_ALL, "Russian") ;
    string str, strlist[MAX_WORDSN];
    cout << "Ââåäèòå ñòðîêó (Г*Г*ãëèéñêèìè ГЎГіГЄГўГ*ìè)";
    getline(cin, str) ; 
    int i=0;
    int lastpos;
    while(true)                         //ГЎГҐГ±ГЄГ®Г*ГҐГ·Г*ûé öèêë
    {  
    size_t pos=str.find(' ') ;  //ГЁГ№ГҐГ¬ áëèæГ*éøèé ïðîáåë
    if(pos==std::string::npos)  break;  //Г°Г*áîòГ*ГҐГ¬, ïîêГ* ïðîáåëîâ Г*ГҐ îñòГ*Г*ГҐГІГ±Гї   
    strlist[i] = str.substr(0, pos);    //êîïèðóåì ГўГ±ГҐ äî ïðîáåëГ* Гў Г¬Г*Г±Г±ГЁГў ñòðîê
    str.erase(0, pos+1);    
    pos = str.find(' ') ;               
    lastpos=i++;                                        
    }   
    lastpos++;
    strlist[lastpos] = str; //ïîñëå ïîñëåäГ*ГҐГЈГ® ñëîâГ* Г*ГҐГІ ïðîáåëГ* => 
                            //Г®Г*Г® ГҐГ№ГҐ Г*ГҐ âêëþ÷åГ*Г® Гў Г¬Г*Г±Г±ГЁГў.     
                            
    for(int i=lastpos; i>=0; i--) {
        cout << i << " " << strlist[i] << endl; // Âûâîäèì Г± ГЄГ®Г*Г¶Г*.    Гў ñòîëáåö           
    }   
    for(int i=lastpos; i>=0; i--) {
        cout << strlist[i] << " "; // Âûâîäèì Г± ГЄГ®Г*Г¶Г*. ГЄГ*ГЄ ñòðîêó         
    }   
    return 0;
}
Добавлено через 36 секунд
Лови. Если есть вопросы - пиши. Код корявый получился( Но работает)
0
ArsLoko
0 / 0 / 0
Регистрация: 01.04.2013
Сообщений: 18
22.11.2013, 00:18  [ТС] #7
ABKA, спасибо, но я из этого мало что проходил, много не понятного... а задание довольно таки рано..даже до функций
0
ABKA
7 / 7 / 0
Регистрация: 06.11.2013
Сообщений: 50
22.11.2013, 00:20 #8
Ну, я же не знаю, что ты проходил) задавай конкретные вопросы.
0
ArsLoko
0 / 0 / 0
Регистрация: 01.04.2013
Сообщений: 18
22.11.2013, 00:29  [ТС] #9
ABKA, прошел: массивы, динамическое выделение памяти, ну и конечно циклы там всякие..вот и все, используя это предлагается написать данную программу..
0
MrGluck
Модератор
Эксперт CЭксперт С++
7497 / 4613 / 694
Регистрация: 29.11.2010
Сообщений: 12,631
22.11.2013, 00:55 #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
 
void print_reverse(const std::string& str)
{
    size_t pos = str.find(",");
    if (pos != std::string::npos)
        print_reverse(str.substr(pos+2, std::string::npos));
    std::cout << str.substr(0, pos) << ' ';
}
 
int main()
{
    print_reverse("eniki, beniki, eli, vareniki");
}
0
ArsLoko
0 / 0 / 0
Регистрация: 01.04.2013
Сообщений: 18
22.11.2013, 02:10  [ТС] #11
MrGluck, а без функций можно? я их ещё не изучал..(
0
Liden
19 / 19 / 2
Регистрация: 19.11.2013
Сообщений: 83
22.11.2013, 04:49 #12
Я тоже новичок) держи, что получилось:
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
#include "stdafx.h"
#include "iostream"
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    char znak_pro[2]={' '};
    char str[50];
    cout<<"straight massive:";
    cin.getline(str,50);
     for(int i=0; i<=49; i++){
           if(str[i]==',')
               str[i]=znak_pro[0];
     }
     cout<<"Inverse massive:";
            for(int j=49; j>=0; j--){
                if(str[j]>=' ' && str[j]<='}') cout<<str[j]; //набор символов ASCII. Использую, чтобы не выходил мусор из пустых ячеек массива.
                else continue;
           }
            cout<<endl;
            
    system ("pause");
    return 0;
}
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.11.2013, 05:31 #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
    char* str = "aaa,bbbb,cccccc,ddddd"; // последовательность слов, разделённых запятыми(про пробелы в задании ничего не сказано)
    
    char* end = str + strlen(str) - 1; // указатель на последний символ
    while (end >= str)
    {
        if (*end != ',') cout << *end;
        else cout << ' ';
        --end;
    }
    cout << endl;
    
    system("pause");
    return 0;
}
0
Liden
19 / 19 / 2
Регистрация: 19.11.2013
Сообщений: 83
22.11.2013, 16:13 #14
Вот код для примера Hello, world. И для подобных конструкций)
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n;
    char znak_pro[2]={' '};
    char str[50];
    cout<<"straight massive:";
    cin.getline(str,50);
    cout<<"inverse massive:";
     for(int i=0; i<=49; i++){
           if(str[i]==','){
           for (n=i+1;n<=49; n++){
                if(str[n]>=' ' && str[n]<='}') cout<<str[n];
           }}}
     cout<<" ";
 
        for(int i=0; i<=49; i++){
           if(str[i]==',') {
               str[i]=znak_pro[0];
           for (n=0; n<=i; n++)
           cout<<str[n];   
           }}
    
            
    system ("pause");
    return 0;
}
0
22.11.2013, 16:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2013, 16:13
Привет! Вот еще темы с ответами:

String. Расположение слов в обратном порядке - C++
Доброго времени суток. У меня снова вопрос касательно строк. Дана вот такая задача: {deleted} П.5.18.Правил Запрещено...

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

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

Вывести на экран последовательность целых чисел в обратном порядке - C++
Помогите) Задание: Вывести на экран : целые числа 10, 12, 14, ... , 60 в обратном порядкев столбик))( в С ++ для начинающих, напишите...


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

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

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