kelevara
28-04-2013, 00:36
Доброго времени!
Необходимо из введенных с клавиатуры чисел выбрать минимальное и максимальное. В качестве признака окончания ввода используется "-". Обязательным условием является использование GOTO.
Я написал следующее:
@echo off
SET /P NUMBER=Number=
IF NOT %NUMBER% NEQ - (echo Nebilo vvedeno ni odnogo chisla! & GOTO EXIT2) :: проверка, введены ли был хоть один символ
SET /A min = %NUMBER% :: задание в качестве минимального первого введенного числа
SET /A max = %NUMBER% :: задание в качестве максимального первого введенного числа
:LOOP
SET /P NUMBER=Number= :: ввод следующего числа
IF NOT %NUMBER% NEQ - GOTO EXIT1 :: если введен "-", то завершаем программу
IF %NUMBER% LEQ %min% SET /A min = %NUMBER%2 :: если введенное число меньше или равно минимальному, то оно становится минимальным
IF %NUMBER% GEQ %max% SET /A max = %NUMBER% :: если введенное число больше или равно максимальному, то оно становится максимальным
GOTO LOOP
:EXIT1
ECHO MIN = %min%
ECHO MAX = %max%
:EXIT2
pause
Проблема с определением минимального значения. Если последовательно ввести 4, 3, 2, 1, то в качестве минимального выводится 12. Почему - не ясно... =(
Необходимо из введенных с клавиатуры чисел выбрать минимальное и максимальное. В качестве признака окончания ввода используется "-". Обязательным условием является использование GOTO.
Я написал следующее:
@echo off
SET /P NUMBER=Number=
IF NOT %NUMBER% NEQ - (echo Nebilo vvedeno ni odnogo chisla! & GOTO EXIT2) :: проверка, введены ли был хоть один символ
SET /A min = %NUMBER% :: задание в качестве минимального первого введенного числа
SET /A max = %NUMBER% :: задание в качестве максимального первого введенного числа
:LOOP
SET /P NUMBER=Number= :: ввод следующего числа
IF NOT %NUMBER% NEQ - GOTO EXIT1 :: если введен "-", то завершаем программу
IF %NUMBER% LEQ %min% SET /A min = %NUMBER%2 :: если введенное число меньше или равно минимальному, то оно становится минимальным
IF %NUMBER% GEQ %max% SET /A max = %NUMBER% :: если введенное число больше или равно максимальному, то оно становится максимальным
GOTO LOOP
:EXIT1
ECHO MIN = %min%
ECHO MAX = %max%
:EXIT2
pause
Проблема с определением минимального значения. Если последовательно ввести 4, 3, 2, 1, то в качестве минимального выводится 12. Почему - не ясно... =(