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

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

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

Удаляем из строки слова перевёртыши...не понять в чём дело - C++

27.01.2009, 14:55. Просмотров 685. Ответов 3
Метки нет (Все метки)

программа должна удаляит из строки все слова которые читаются одинаково в дыух напралениях.
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 <stdio.h>
#include <stdlib.h>
 
int main ()
{
    char mass[50]="abba dolce ammo";
    int i,j,m,k=0,fl1=0,fl2=0,v=0,p=0;
    for (i=0;i<50;i++){
        if (mass[i]==' ' || mass[i]=='NULL'){
            for (m=k,j=(i-1);j>=k;m++,j--){ // цикл который не срабатывает
                if (mass[m]==mass[j]){
                    fl1=1;
                }
                else 
                    fl2=1;
            }
            if (fl1==1 && fl2==0){
                for (p=i+1,v=k;v<=50;v++,p++){
                    mass[v]=mass[p];
                }
                    i=0;
            }
            fl1=0;
            fl2=0;
        }
        k=i+1;
    }
    printf("%s",mass);
    return 0;
}
почему то пропускается цикл for
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2009, 14:55     Удаляем из строки слова перевёртыши...не понять в чём дело
Посмотрите здесь:

Ошибка памяти при выполнении - не могу понять в чём дело - C++
Добрый день. Есть следующий код: #include &lt;iostream&gt; using namespace std; class Matrix { private: int* arr_ptr; ...

Вывод строки. Не могу понять, в чем дело - C++
Добрый вечер. В программе на вход подается строка типа &quot;слово1-слово2&quot;, содержащаяся в переменной str. Я слово 1 помещаю в переменную...

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

Не компилируется из-за неверных конструкторов. В чём дело? - C++
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;string.h&gt; class Person { private: char Firstname ; char Surname ; ...

В чём дело,почему оператор if так поступает? - C++
Нужно,чтобы выводил процент от дохода. Прописал вроде бы чётко, если income &lt;= 9275 , то вывести &quot;то-то&quot; и т.д. а он выводит так :...

История одной ошибки. В чём может быть дело? - C++
Проблема вот в чём. Задал я процедуру void FK1(char&amp; a, char&amp; a1, char&amp; a2, int c) switch (c) { case '1': if (a=='-') { a =...

удаляем пробелы из строки char!!! - C++
для моего консольного калькулятора хочу добавить функцию удаляющую пробелы!!! так вот нужен цикл который сместит символы когда найдет...

не могу понять в чем дело - C++
In file included from /usr/local/lib/gcc47/include/c++/csignal:44:0, from /home/dir/core.h:67: ...

Написанная программа не компилируется, не могу понять в чем дело - C++
Есть три файла в одном проекте: main.cpp cyber.cpp cyber.h //main.cpp: #include &lt;iostream&gt; #include...

Вызов перегруженной функции не могу понять в чем дело? - C++
#include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;stdio.h&gt; using namespace std; //Прототипы функций bool LeapYear(int Year); ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xToTa
13 / 13 / 0
Регистрация: 26.01.2009
Сообщений: 162
27.01.2009, 15:10     Удаляем из строки слова перевёртыши...не понять в чём дело #2
то есть не хоет проверять твое слово 'abba'?
а как оно его будет проверять если при i=0 -> j=-1, которое в свою очередь меньше k...
Дальше не заходит в if до тех пор пока i не станет равным 5...
а когда i=5 -> j=4 ... k=i+1=6... j<k - снова игнорирование цикла
plemiash
0 / 0 / 0
Регистрация: 13.01.2009
Сообщений: 17
27.01.2009, 16:02  [ТС]     Удаляем из строки слова перевёртыши...не понять в чём дело #3
да ....чёт не доглядел

Добавлено через 4 минуты 27 секунд
проблема в строке 26 .....k=i+1; нужно поставит в другое место

Добавлено через 32 минуты 42 секунды
xToTa, ты прав но только наполовину......)))....
а как оно его будет проверять если при i=0 -> j=-1, которое в свою очередь меньше k...
не верно...ведь когда mass[i]==' ' , i уже будет равно 4...
нужно просто было пошаманить с индексом начала слова т.е. k
всё решилось престановкой строки 26: k=i+1; , между строк 24 и 25....но всё равно спс...
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
28.01.2009, 01:45     Удаляем из строки слова перевёртыши...не понять в чём дело #4
Код
if (mass[i]==' ' || mass[i]=='NULL')
макроопределения не срабатывают внутри символьных и строковых констант

NULL - это #define NULL (void *) 0 , который приходит через stdio.h (т.е. прямо там содержится или подключается ещё откуда-нибудь)
в цпп это #define NULL 0, короче и там и там это препроцессорный макрос
Yandex
Объявления
28.01.2009, 01:45     Удаляем из строки слова перевёртыши...не понять в чём дело
Ответ Создать тему
Опции темы

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