Knoppix.ru

Линукс в пять минут!
Текущее время: Пт дек 03, 2010 7:06 am

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Нелогичная работа программы на С
СообщениеДобавлено: Сб дек 12, 2009 8:29 pm 
Не в сети

Зарегистрирован: Пт сен 04, 2009 11:05 pm
Сообщения: 12
Программа на С. Непонятное нарушение ожидаемой последовательности работы программы. Самая суть, с пропуском не влияющих на данный результат операторов :

scanf ( "%c", &ch) ;
while (ch != 'q' ) // q - для выхода из цикла
{
----------------------- // пропущенные операторы
-----------------------
printf ( "Введите вес в фунтах : ") ;
scanf ( "%f ", &weight ) ;

printf ( "Введите следующий товар : ") ;
scanf ( "%c ", &ch) ;

}

printf ( "Стоимость фунта товара : % .2f \n", rate ) ;
-------------------------------------------
------------------------------------------
Компиляция проходит нормально. Но результат следующий по выполнении цикла while :

Введите вес в фунтах: 5 // ввожу число
Введите следующий товар : Введите вес в фунтах : q // здесь, явно, ожидание ввода символа оператором scanf ("%c",&ch)
// ввожу q - для выхода из цикла
Получаю:
Введите следующий товар : Стоимость фунта товара :

То есть, внутри цикла, по достижении последнего оператора printf (), ввода scanf () программа не ожидает ,как того требует алгоритм , а сразу выводит
предыдущий оператор printf () !? ; при вводе q , по выходе из цикла, получаю последний в цикле оператор printf () ! , - хотя по условию должен быть выход из цикла. То есть, первый проход цикла - нормальный , сбой при итерации. В чем может быть дело ? Все подобные программы работали нормально......


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB