shell实例第17讲:连续输入4个100以内的数字,统计和、乘、平均、最小和最大

连续输入4个100以内的数字,统计和、乘、平均、最小和最大

#!/bin/bash
#作者:魏波
#时间:2017.02.04

COUNT=1
SUM=0
MIN=0
MAX=0
AVG_INT=0
AVG_FLOAT=0
MUL=1
while [ $COUNT -le 4 ]
do
    read -p "请输入1-10个整数:" input_number
    if [[ ! $input_number =~ ^[0-9]+$ ]]; then
        echo "输入必须是整数!"
        exit 1
    elif [[ $input_number -gt 100 ]]; then
        echo "输入必须是100以内!"
        exit 1
    fi
    SUM=$(($SUM+$input_number))
    AVG_INT=`expr $SUM / $COUNT`
    AVG_FLOAT=`echo "scale=2;$SUM / $COUNT" | bc `
    MUL=`expr $input_number \* $MUL`
    [ $MIN -gt $input_number ] && MIN=$input_number
    [ $MAX -lt $input_number ] && MAX=$input_number
    let COUNT++
done

echo "MIN: $MIN"
echo "MAX: $MAX"
echo "SUM: $SUM"
echo "AVG_INT: $AVG_INT"
echo "AVG_FLOAT: $AVG_FLOAT"
echo "MUL: $MUL"

结果:

shell实例第17讲:连续输入4个100以内的数字,统计和、乘、平均、最小和最大

说明:

1、 if [[ ! $input_number =~ ^[0-9]+$ ]]

(1)=~表示匹配

(2)^表示是以什么开头

(3)[0-9]表示范围内都是数字

(4)+表示一个或多个

(5)$表示结尾

总的来说就是:输入的变量input_number匹配到的不是以数字开头并结尾的就执行if里面的动作

2、AVG_INT=`expr $SUM / $COUNT`

expr  /: 表示整数的除法

3、 AVG_FLOAT=`echo "scale=2;$SUM / $COUNT" | bc `

scale可以指定小数位数

 

上一篇:学习Python的第五天


下一篇:【2019-2020春学期】数据库作业14:第五章: 数据库完整性 习题 + 存储过程