PDA

Показать полную графическую версию : [решено] Максимум и минимум


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. Почему - не ясно... =(

Georgio
28-04-2013, 03:39
kelevara, всё правилно написали! Просто описка в строке: IF %NUMBER% LEQ %min% SET /A min = %NUMBER%2 :: если введенное число меньше или равно минимальному, то оно становится минимальным »



Если коротко, то так работает:


@echo off

SET /P NUMBER=Number=
SET /A min = %NUMBER%
SET /A max = %NUMBER%

:LOOP
SET /P NUMBER=Number=
IF %NUMBER% LEQ %min% SET /A min = %NUMBER%
IF %NUMBER% GEQ %max% SET /A max = %NUMBER%
ECHO MIN = %min%
ECHO MAX = %max%
GOTO LOOP

kelevara
28-04-2013, 10:07
Georgio, спасибо! ) надо быть мне внимательней




© OSzone.net 2001-2012