В вашем состоянии:
while ('h'>8 || 'h'<1)
'h'
- символьная константа. Это не имеет ничего общего с переменной height
. Вы сравниваете эту константу с 8 и 1. В ASCII код для 'h'
больше 8, поэтому условие всегда будет истинным.
Также:
int height = get_int("Height: \n");
Объявление height
внутри цикла означает, что он перестает существовать вне цикла, включая условный цикл. height
, который вы определили позже, является другой переменной, чем эта.
Переместите определение height
за пределы цикла и используйте height
в сравнении:
int height;
do
{
height = get_int("Height: \n");
} while (height>8 || height<1);
printf ("Stored: %d\n", height);