Я должен написать скрипт, который принимает некоторые цифры в качестве входных данных. Мне нужно получить наибольшее число, а также частоту наибольшего числа. Как бы я пошел по этому поводу. Должен ли я использовать цикл 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
Эта реализация не использует структуры. Я исправил опечатку и использовал ваш стиль кодирования:
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