Linux 如何在bash中计算平均值?
您好,我用bash脚本制作了这个程序,我需要计算平均值,我尝试了很多次,但都不起作用Linux 如何在bash中计算平均值?,linux,bash,Linux,Bash,您好,我用bash脚本制作了这个程序,我需要计算平均值,我尝试了很多次,但都不起作用 #/bin/bash 申报A级 对于((c=1;c你需要在循环时创建一个分数总数,还需要使用类似bc的方法获得小数点后的平均值。因此,利用你的原始代码: #!/bin/bash declare -A grades for (( c=1 ; c<=5 ; c++)) { read -p "enter name,course grade of 5: " course grade
#/bin/bash
申报A级
对于((c=1;c你需要在循环时创建一个分数总数,还需要使用类似bc的方法获得小数点后的平均值。因此,利用你的原始代码:
#!/bin/bash
declare -A grades
for (( c=1 ; c<=5 ; c++))
{
read -p "enter name,course grade of 5: " course grade
grades[$course]=$grade
}
echo "your grades is"
echo ${grades[@]}
echo
echo "this is all your courses name and grades"
for c in ${!grades[*]}
{
echo " $c : ${grades[$c]}"
(( cnt++ )) # Counting elements in the array
if [[ "$cnt" -ge "(( ${#grades}-5 ))" ]]
then
(( total+=${grades[$c]} )) # Get a running total of the grades in index of array is one of the last 5
fi
}
unset mygrades
av=$(echo "scale=2;$total/5" | bc) # Calculate the average using bc, setting the decimal places to 2 by using scale and reading the result into av
echo "Your average grade is $av"
!/bin/bash
申报A级
为了((c=1;cSo你在哪里计算平均值?我需要最后计算它。分数通常不是字母而不是数字,即A、B、c?分数是数字,我只想对它们进行平均,所以你为什么不计算它?将分数相加,然后除以5。我试过了,但有一个问题,它计算所有的数字即使我输入了50个数字,它也会出现。有没有办法让它只计算最后5个?好的,我已经修改了答案