题解 | #求平均值#
求平均值
http://www.nowcoder.com/practice/c44b98aeaf9942d3a61548bff306a7de
试了两种方法,第一种是从文件读取,第二种是从命令行输入(可以,但是平台不给我过);
去查了一下,说是bash不支持浮点数,所以要用bc或awk来输出浮点数;
#第一种
#!/bin/bash
row=0
sum=0
num=0
while read line
do
if [[ row -eq 0 ]]
then
num=${line}
else
((sum+=line))
fi
((row++))
done < test4.txt
echo "scale=3;${sum}/${num}" | bc
#第二种
#!/bin/bash
read len
str=""
for((i=0;i<len;i++))
do
read tmp
str=${str}" "${tmp}
done
awk -F" " '{sum=0;for(j=1;j<=NF;j++){sum+=$j}printf("%.3f",sum/NF);}' <<< $str
查看6道真题和解析