IPB

Здравствуйте, гость ( Вход | Регистрация )

> Помогите пожалуйсто исправить программу, Помогите пожалуйсто исправить программу
Гость_aligatr-kil_*
сообщение Dec 25 2007, 21:32
Сообщение #1





Guests






Помогите пожалуйсто исправить программу : Удалите из слова все буквы, совпадающие с последней буквой.
Код
#include <iostream.h>
#include <stdio.h>
#include <conio.h>

void main ()
{
  int i;
  int j;
  char str[100];

  cin>>str[i];

  char sym = str[strlen(str)-1];//запомнили последний
  for( int i = 0; i < strlen(str); i++)
    if( str[i] == sym )// находими нужный символ
      for( int j = i; j < strlen(str)-1; j++)
        str[i] = str[i+1];//сдвигаем хвост
  cout << str[i];
  getch();
}
Вернуться к началу страницы
 
+Цитировать сообщение
 
Создать новую тему
Ответов
Shasta Dam
сообщение Dec 27 2007, 20:08
Сообщение #2


Продвинутый пользователь
***

Группа: Posters
Сообщений: 183
Регистрация: 29.6.2007
Из: Moscow-Чебоксары-Auckland
Пользователь №: 7,397



Цитата(Ireul @ Dec 27 2007, 02:21) *
Типичная ошибка для чайника - сдвигая массив ты "перепрыгиваешь" по i одну букву, так как она из i+1 перемещается в i, а в следующей итерации цикла ты уже увеличиваешь i, и когда у тебя встречается пара целевых букв для сдвига - одну ты пропустишь.

Как вариант - --i; каждый раз как выполняешь сдвиг.
Маленькое дополнение - сдвигать гораздо удобнее при помощи вызова strcpy(str+i,str+i+1);

ЗЫ ты вообще щачем удаляешь что-то из целевой строки? Ты же выводишь посимвольно, так и выводи символ если он не совпал и выводи если совпал, а строку вообще трогать незачем.

ппц ты слепой!

Код
for( int j = i; j < strlen(str)-1; j++)
str[i] = str[i+1];//сдвигаем хвост

SiMM уже заметил. У тебя цикл по j!
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_Ireul_*
сообщение Dec 28 2007, 04:21
Сообщение #3





Guests






Цитата(Shasta Dam @ Dec 27 2007, 20:08) *
ппц ты слепой!

Код
for( int j = i; j < strlen(str)-1; j++)
str[i] = str[i+1];//сдвигаем хвост

SiMM уже заметил. У тебя цикл по j!


Даже с циклом по j всё равно сохраняется та ошибка, не говоря уже о том что правильный сдвиг, при котором данные цикл отпадает, был приведён в моём посте.
Вернуться к началу страницы
 
+Цитировать сообщение

Сообщений в этой теме


ОтветитьСоздать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 19th June 2025 - 17:52