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

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

Войти
Регистрация
Восстановить пароль
 
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 539
#1

Подправьте решение - C++

26.11.2010, 19:34. Просмотров 283. Ответов 1
Метки нет (Все метки)

Скажите пожалуйста почему программа работает не правильно
вот задача:

Вам дана непустая строка, состоящая из строчных латинских букв, цифр и пробелов. Длина строки не превышает 250 символов. Словом для данной строки называется наибольшая по включению подстрока, не содержащая пробелов. Ваша задача - удалить из строки все лишние пробелы так, чтобы два последовательных слова разделял ровно один пробельный символ. Лидирующих и концевых пробелов в строке быть не должно. Гарантируется, что в строке имеется хотя бы один непробельный символ.


Входные данные
Входных данные - это единственная строка.


Выходные данные
Выведите отредактированную строку без лишних пробелов.


Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include "iostream"
 
int _tmain(int argc, _TCHAR* argv[])
{
    char str[250];
    std::cout << "Vvedi_strocu\n";
    std::cin >> str;
    for(int a=1;a<strlen(str);a++)
        if(str[a]==' ' & str[a+1]==' ')
        {
            for(int b=a;a<strlen(str);a++)
                str[a]=str[a+1];
        }
        std::cout << str;
        char w;
        std::cin >> w;
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2010, 19:34     Подправьте решение
Посмотрите здесь:

Подправьте немного... - C++
Суть задачи: найти сумму ряда с точностью 0.001 общий член n!/3^n^n вот написал какой то бред #include &quot;stdafx.h&quot; #include...

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

Подправьте мой код) - C++
Нужно вывести только буквы без символов input \\\aBaBba\\\ output AbBbBA #include &lt;iostream&gt; #include &lt;cstring&gt; ...

Массивы! Подправьте прогу! - C++
Подскажите ошибки! Прога должна: 1. Превращать в массив введенную строку символов и выводить массив на экран. 2. Из массива...

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

Подправьте прогу( сортировка массивов) - C++
Подправьте прогу пожалуйста, проверьте на ошибки и добавьте нужные cout, cin, чтоб выводило результаты на консоль.(Задание: Дан массив...

Подправьте код кому не сложно - C++
#include &quot;iostream&quot; #include &lt;stdio.h&gt; using namespace std; class Rastenie { /*îïèñàíèå ýëåìåíòîâ êëàññà Ðàñòåíèé*/ ...

Подправьте рандом в двумерном массиве (матрице) - C++
#include&lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;time.h&gt; #include&lt;iomanip&gt; using namespace std; void main() { ...

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

Нашла на форуме код программы, а он не работает. Подправьте его, пожалуйста - C++
#include &lt;windows.h&gt; #include &lt;fstream&gt; using namespace std; ofstream out; ifstream in; void WriteResult(const char...

Подправьте задачу (удалить из массива элементы которые встречаются ровно 2 раза) - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #define N 100 using namespace...

Подправьте задачу. (Определить количество слов в строке, которая содержит введенный символ) - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; using namespace std; int _tmain(int argc,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
26.11.2010, 21:43     Подправьте решение #2
1. cin считывает строку до пробела, поэтому воспользуйтесь ф-цией getline(), для вашего случая:
C++
1
cin.getline(str,249);]
2.if(str[a]==' ' & str[a+1]==' ') - оператор & - это оператор, который работает с битами, вам нужно &&. т.е. вот так:
C++
1
if(str[a]==' ' && str[a+1]==' ')
Добавлено через 2 минуты
да, еще цикл не правильный, вот так надо:
C++
1
2
for(int b=a;b<strlen(str);b++)
                                str[b]=str[b+1];
Ответ Создать тему
Опции темы

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