shell实例第17讲:连续输入4个100以内的数字,统计和、乘、平均、最小和最大
生活随笔
收集整理的這篇文章主要介紹了
shell实例第17讲:连续输入4个100以内的数字,统计和、乘、平均、最小和最大
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
連續輸入4個100以內的數字,統計和、乘、平均、最小和最大
#!/bin/bash #作者:魏波 #時間:2017.02.04COUNT=1 SUM=0 MIN=0 MAX=0 AVG_INT=0 AVG_FLOAT=0 MUL=1 while [ $COUNT -le 4 ] doread -p "請輸入1-10個整數:" input_numberif [[ ! $input_number =~ ^[0-9]+$ ]]; thenecho "輸入必須是整數!"exit 1elif [[ $input_number -gt 100 ]]; thenecho "輸入必須是100以內!"exit 1fiSUM=$(($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_numberlet COUNT++ doneecho "MIN: $MIN" echo "MAX: $MAX" echo "SUM: $SUM" echo "AVG_INT: $AVG_INT" echo "AVG_FLOAT: $AVG_FLOAT" echo "MUL: $MUL"結果:
說明:
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可以指定小數位數
?
總結
以上是生活随笔為你收集整理的shell实例第17讲:连续输入4个100以内的数字,统计和、乘、平均、最小和最大的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell实例第16讲:猜拳游戏
- 下一篇: lua源代码分析01:lua源代码结构分