-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathavg_min_max.sh
65 lines (53 loc) · 1.12 KB
/
avg_min_max.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash
read -p "Enter the number of elements you wish to work with: " n
echo "Enter the numbers: "
for ((i = 0; i < n; i++)); do
read array[$i]
done
average() {
arr=("$@")
num=${#arr[@]}
sum=0
for i in "${arr[@]}"; do
sum=$((sum + i))
done
avg=$(awk "BEGIN {printf \"%.2f\", $sum / $num}")
echo "Average of given numbers is: $avg"
}
minimum() {
arr=("$@")
min=${arr[0]}
for i in "${arr[@]}"; do
if [[ $i -lt $min ]]; then
min=$i
fi
done
echo "Minimum number amongst the given numbers is: $min"
}
maximum() {
arr=("$@")
max=${arr[0]}
for i in "${arr[@]}"; do
if [[ $i -gt $max ]]; then
max=$i
fi
done
echo "Maximum number amongst the given numbers is: $max"
}
exiting() {
flag=1
exit 0
}
flag=0
while [ $flag -eq 0 ]
do
echo -e "Menu:\n1. Average\n2. Maximum\n3. Minimum\n4. Exit"
read -p "Enter your choice: " ch
case $ch in
1) average "${array[@]}" ;;
2) maximum "${array[@]}" ;;
3) minimum "${array[@]}" ;;
4) exiting ;;
*) echo "Wrong choice" ;;
esac
done