Скрипт для возврата наибольшего числа и частоты наибольшего числа

Я должен написать скрипт, который принимает некоторые цифры в качестве входных данных. Мне нужно получить наибольшее число, а также частоту наибольшего числа. Как бы я пошел по этому поводу. Должен ли я использовать цикл for?

Это то, что у меня есть:

while read -p "Enter a value:" NUMBER ; do
if [[ $NUMBER -eq 0 ]] : then
   break
else 
    if [[ $NUMBER -gt $max_Value ]] ; then
        max_Value=$NUMBER
    fi
fi
done
-1
задан 11 May 2019 в 08:25

1 ответ

Эта реализация не использует структуры. Я исправил опечатку и использовал ваш стиль кодирования:

max_Freq=0 # initialization of frequency (because of increment below can work)
while read -p "Enter a value:" NUMBER ; do
if [[ $NUMBER -eq 0 ]] ; then
   break; # exit while with entering 0
else 
    if [[ $NUMBER -eq $max_Value ]] ; then
        max_Freq=$((max_Freq+1)) # increment frequency of max
    fi
    if [[ $NUMBER -gt $max_Value ]] ; then # we have new max number entered
        max_Value=$NUMBER # remember this number
        max_Freq=1 # initialization of frequency of this number
    fi
fi
done
# on exit while loop print out statistics
echo "Max value $max_Value was entered $max_Freq times";

# Usage example:
# $ bash m.sh 
# Enter a value:4
# Enter a value:4
# Enter a value:5
# Enter a value:0
# Max value 5 was entered 1 times
0
ответ дан 11 May 2019 в 08:25

Другие вопросы по тегам:

Похожие вопросы: