![]() |
|
Модераторы: bsa |
![]()
|
|
| Garcian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.11.2008 Репутация: нет Всего: нет |
Здравствуйте Уважаемые Программисты!
Имеется следущая задача: Для слов, разделенных более чем одним пробелом, оставить 1 пробел. Пользоваться можно только структурами. Осуществляется чтение из текста. Вот мой код:
С чтением и выводом на экран все в порядке. Тем не менее программа виснет. Видимо ошибка в функции, выполняющей главную задачу (хотя мне она кажется правильной). Помогите, пож-ста! --------------------
Неродивый студент |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Ну раз считаешь, что виснет главная функция, то дойди до нее отладчиком и посмотри. Или сделай отладочный вывод.
Кстати, для решения твоей задачи совсем не надо пользоваться структурами. Это легко делается в несколько строчек:
|
|||
|
||||
| Garcian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.11.2008 Репутация: нет Всего: нет |
bsa, спасибо конечно, я бы и не пользовался - задание же дается на изучение структур, поэтому только с ними. Я бы про ошибку и не спрашивал, но уж слишком долго я вожусь с ней. А проблема не в мэйне, а в Alchemistе, хотя опять же - по синтаксису все верно (да и по логике все должно работать)
--------------------
Неродивый студент |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 4 Всего: 64 |
Garcian, у тебя в функции Alchemist в подциклах объявляются счётчики с такими же именами как и во внешних. Лучше так не делать. Попробуй дать им другие имена.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
У тебя начальные значения не инициализированы, по-этому могут содержать мусор в дальнейших вычислениях, если условия не выполнятся.. -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| artsb |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 4 Всего: 64 |
Кстати, да. Я что-то не заметил Т.е. если это условие не выполнится
то в переменной а останется мусор. И тогда здесь
вы можете ссылаться на не существующий элемент массива. Как известно, в С++ нет контроля границ... Это сообщение отредактировал(а) artsb - 11.5.2009, 21:36 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
||||||
|
|||||||
| Garcian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.11.2008 Репутация: нет Всего: нет |
Спасибо большое) Теперь не виснет) Но и программа работает не так как надо) Вообще в мэйне я рано закрыл файл. Потом при не обнаружении пробела в первом символе программа не выполняется. ДАже если это не так выдает не пойми что)
--------------------
Неродивый студент |
|||
|
||||
| Garcian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.11.2008 Репутация: нет Всего: нет |
эххх впринципе до строки
все верно.. дальше уже непорядок. Помогите разобраться --------------------
Неродивый студент |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 4 Всего: 64 |
Что-то всё так запутано
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Garcian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.11.2008 Репутация: нет Всего: нет |
artsb, да тут бреда много)
тут есть риск выйти за границу имхо (рассматривал как то, уже подзабыл). В общем попробую исправить, новый вариант выложу еще) --------------------
Неродивый студент |
|||
|
||||
| gosn1ck |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 18.4.2009 Репутация: 1 Всего: 1 |
не пойму, а что мешает в коде представленном bsa заменить char c на
|
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
структуры тут вообще за уши притянуты. задача вообще к структурам никакого отношения не имеет...
|
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 4 Всего: 64 |
Человек решил разобраться со структурами сразу на сложном примере -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Garcian |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.11.2008 Репутация: нет Всего: нет |
Обязательно использовать структуры и разбивать программу на фунцкии (потом из этих функций и структур надо еще проект составить artsb, со структурами я впервые познакомился тут http://forum.vingrad.ru/forum/topic-255282/unread-1.html По задаче, исправил ф-цию мэйн:
по Alchemist:
замучался... добился того, что программа нормально воспринимает файл без пробелов и с одним разделителем между словами. Если же разделителей больше двух - строка стирается до конца
после этого внутренний цикл не играет роли Не знаю, где я потерял логическую цепь. Уповаю на вашу поддержку Это сообщение отредактировал(а) Garcian - 12.5.2009, 22:38 --------------------
Неродивый студент |
||||||
|
|||||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 4 Всего: 64 |
Мне будет проще написать сначала. Потом выложу то, что получится -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |