Программа на С. Непонятное нарушение работы цикла. Самая суть, с пропуском не влияющих на данный результат операторов :
scanf ( «%c», &ch) ; while (ch != 'q' ) { ----------------------- // пропущенные операторы ----------------------- printf ( «Введите вес в фунтах : ») ; scanf ( «%f », &weight ) ; printf ( «Введите следующий товар : ») ; scanf ( «%c », &ch) ;
}
printf ( «Стоимость фунта товара : % .2f \n», rate ) ; ------------------------------------------- ------------------------------------------ Компиляция проходит нормально. После ввода числа в оператор цикла scanf ( «%f », &weight) получаю:
Введите следующий товар : Введите вес в фунтах :
То есть, внутри цикла, по достижении последнего оператора printf (), программа пропускает последний в цикле оператор scanf ( «%c », &ch) и сразу выводит предыдущий оператор printf () !? ; При изменении спецификатора в последнем операторе цикла scanf () на числовой ,например, все работает как должно ! Получается ,именно символьный спецификатор вносит путаницу ....Также нарушения по выходе из цикла. В чем может быть дело ? Все подобные программы работали нормально......