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

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

Войти
Регистрация
Восстановить пароль
 
 
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
#1

Дописать программу - C++

05.03.2013, 19:12. Просмотров 509. Ответов 18
Метки нет (Все метки)

Нужно слова в строке переставить с конца в начале
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
#include <string.h>
#include <stdio.h>
#include <conio.h>
#define N 600
 
char buf[N];
 
int main()
{
    char input[N]; int i=0, n=0, k=0, p=0;
    printf("Enter your text: ");
    gets(input);   //Ввели строку
    k = strlen(input); //к-во элм.
    input[k+1]=' '; //добавили в конец пробел
    for(i=k; i!=0; i--)
    {
        if(input[i]==' ') // ищем с конца пробел
        {
            for(n=i+1; input[n]!=' '; n++) // к концу до пробела слово вставляем в буфер(начало)
            {
                buf[p]=input[n];
                p++;
            }
            buf[p+1]=' '; // добавляем в буфер пробел для разделения
        }
    }
    puts(buf); //выводим буфер
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2013, 19:12     Дописать программу
Посмотрите здесь:

Дописать программу на С++ - C++
#include&lt;iostream.h&gt; #include&lt;math.h&gt; struct List { float fi,r,z; int n; }; void vvod (List &amp;, int); void vivod (List...

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

дописать программу - C++
помогите пожалуйста дописать программу,по блок-схеме углы вроде написал,но правильно ли? #include &lt;iostream&gt; #include &lt;iomanip&gt; ...

Помогите дописать программу - C++
вот код программы, но работает только первая часть из файла в массив, как теперь собрать её чтобы вся работала? может с помощью классов иил...

Как дописать программу - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму элементов массива, лежащих в диапазоне от А до В; ...

Дописать структурную программу по C++ - C++
Помогите дописать структурную программу по C++. Сведения об ученике состоят из его имени, фамилии, класса котором он учится, оценок,...

как дописать программу - C++
Дана точка М с координатами ( x, y), определить, принадлежит ли точка заданной области. #include &lt;iostream&gt; #include &lt;clocale&gt; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mysterion777
-74 / 48 / 2
Регистрация: 11.01.2013
Сообщений: 199
05.03.2013, 19:23     Дописать программу #2
я заметил что ты не правильно обращаешься к концу строки так как у тебя счет символов идет с нуля а длина строки считается с 1-цы то....
C++
1
2
3
gets(input);   //Ввели строку
    k = strlen(input); //к-во элм.
    input[k+1]=' '; //добавили в конец пробел
не верен нуно так
C++
1
2
3
gets(input);   //Ввели строку
    k = strlen(input); //к-во элм.
    input[k]=' '; //добавили в конец пробел
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 19:25  [ТС]     Дописать программу #3
Цитата Сообщение от Mysterion777 Посмотреть сообщение
я заметил что ты не правильно обращаешься к концу строки так как у тебя счет символов идет с нуля а длина строки считается с 1-цы то....
C++
1
2
3
gets(input);   //Ввели строку
    k = strlen(input); //к-во элм.
    input[k+1]=' '; //добавили в конец пробел
не верен нуно так
C++
1
2
3
gets(input);   //Ввели строку
    k = strlen(input); //к-во элм.
    input[k]=' '; //добавили в конец пробел
Сейчас проверю.. Спасибо за попытку!
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.03.2013, 19:31     Дописать программу #4
cxemuch205, например строка "привет пока" должна превратиться в "пока привет"?
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 19:34  [ТС]     Дописать программу #5
Цитата Сообщение от cxemuch205 Посмотреть сообщение
Сейчас проверю.. Спасибо за попытку!
Нет не работает..

Добавлено через 2 минуты
Цитата Сообщение от cxemuch205 Посмотреть сообщение
Нет не работает..
Там плюс нужен, если его убрать ничего толкового не выводит, а так выводит только последнее слово
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 19:35  [ТС]     Дописать программу #6
Цитата Сообщение от yoghurt92 Посмотреть сообщение
cxemuch205, например строка "привет пока" должна превратиться в "пока привет"?
да именно
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.03.2013, 19:38     Дописать программу #7
cxemuch205, а не вариант взять другую строку, записывать туда в нужном порядке, и потом скопировать все в исходную, или принципиально?
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 19:53  [ТС]     Дописать программу #8
Цитата Сообщение от yoghurt92 Посмотреть сообщение
cxemuch205, а не вариант взять другую строку, записывать туда в нужном порядке, и потом скопировать все в исходную, или принципиально?
Хах)) да люблю когда пишешь и программа работает))

Добавлено через 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
26
27
28
29
30
#include <string.h>
#include <stdio.h>
#include <conio.h>
#define N 100
 
char buf[N];
 
int main()
{
    char input[N]; int i=0, n=0, k=0, p=0;
    printf("Enter your text: ");
    gets(input);
    k = strlen(input);
    input[k+1]=' ';
    for(i=k; i!=0; i--)
    {
        if(input[i]==' ')
        {
            for(n=i+1; input[n]!=' '; n++)
            {
                buf[p]=input[n];
                p++;
            }
            buf[p+1]=' ';
            p++;
        }
    }
    puts(buf);
    getch();
}
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.03.2013, 19:57     Дописать программу #9
cxemuch205, ну если она выводит одно слово, значит она работает НЕправильно) так чем вам мой вариант не нравится?)
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 20:03  [ТС]     Дописать программу #10
yoghurt92, меньше текста, больше дела, подкинте идею что там не так..
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.03.2013, 20:27     Дописать программу #11
cxemuch205, зачем вы в конец строки добавляете пробел? может лучше сделать так:

C++
1
for(n=i+1; input[n]!='\0' || input[n]!=' '; n++)
тогда цикл будет идти либо до конца строки конда записываем последние слово, либо до пробела...

Добавлено через 11 минут
cxemuch205, твоя программа работает правильно, просто ты не совсем правильно условия сделал, не надо в конец строки ставить пробел, ты идешь с конца строки, находишь пробел и копируешь все в переменную, ок, первое слово у тебя есть, ты ставишь пробел и казалось все круто, НО!!!! ты идешь дальше проходишь первое слов, а перед первым словом ожидаемого пробела нет, вот и программа завершает свою работу, все работает правильно, просто условие надо поменять!

покажу, смотри, есть строка one two, ты идешь до пробела перед two и все копируешь в буфер, ок, а перед one пробела нет, тут твое условие и не работает...
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 20:37  [ТС]     Дописать программу #12
Цитата Сообщение от yoghurt92 Посмотреть сообщение
cxemuch205, зачем вы в конец строки добавляете пробел? может лучше сделать так:

C++
1
for(n=i+1; input[n]!='\0' || input[n]!=' '; n++)
тогда цикл будет идти либо до конца строки конда записываем последние слово, либо до пробела...

Добавлено через 11 минут
cxemuch205, твоя программа работает правильно, просто ты не совсем правильно условия сделал, не надо в конец строки ставить пробел, ты идешь с конца строки, находишь пробел и копируешь все в переменную, ок, первое слово у тебя есть, ты ставишь пробел и казалось все круто, НО!!!! ты идешь дальше проходишь первое слов, а перед первым словом ожидаемого пробела нет, вот и программа завершает свою работу, все работает правильно, просто условие надо поменять!

покажу, смотри, есть строка one two, ты идешь до пробела перед two и все копируешь в буфер, ок, а перед one пробела нет, тут твое условие и не работает...
Я так пробовал, но все равно попробовал еще раз, не работает..
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.03.2013, 21:02     Дописать программу #13
cxemuch205, вот посмотрите, вводил one two выдавало правильный ответ, своего не добавлял, оставил ваш код

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
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <conio.h>
using namespace std;
#define N 100
 
char buf[N];
 
int main()
{
    char input[N]; int i=0, n=0, k=0, p=0;
    printf("Enter your text: ");
    gets(input);   //Ввели строку
    k = strlen(input); //к-во элм.
 
    for(i=k; i>=0; i--)
    {
        if(input[i]==' ' || i ==0) // ищем с конца пробел
        {
            if(i ==0)
                i -= 1;
 
            for(n=i+1; input[n]!='\0' && input[n]!=' '; n++) // к концу до пробела слово вставляем в буфер(начало)
            {
                buf[p]=input[n];
                p++;
            }
             
            buf[p] = ' '; // добавляем в буфер пробел для разделения
            p++;
        }
    }
    puts(buf); //выводим буфер
    getch();
}
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 21:07  [ТС]     Дописать программу #14
yoghurt92, работает спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2013, 21:09     Дописать программу
Еще ссылки по теме:

Требуется дописать программу С++ сорировка - C++
Требуется упорядочить матрицу по столбцам методом прямого выбора без использования дополнительного массива. Вот программа: #include...

Не получается дописать программу по массивам - C++
Задание: В каждой строке матрицы Т найти количество делящихся на 3, и записать эти числа в вектор. Сделать сортировки вектора по...

Помогите со структурами (дописать программу) - C++
Структуры вводятся с клавиатуры. В ряде вариантов заданий с клавиатуры вводится не вся структура, а только ее отдельные поля. Необходимо...

как правильно дописать программу - C++
ifstream f; int c=0; int x=0; int y=0; string slova; f.open(&quot;C:\\text.txt&quot;); while(!f.fail()){ f&gt;&gt;slova; ++c; ...

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


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

Или воспользуйтесь поиском по форуму:
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.03.2013, 21:09     Дописать программу #15
cxemuch205, вы поняли в чем была ошибка?

Добавлено через 28 секунд
cxemuch205, поставить спасибо
Yandex
Объявления
05.03.2013, 21:09     Дописать программу
Ответ Создать тему
Опции темы

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