在Linux系统下,编写一个Shell脚本,从键盘读入5个整数,然后显示最大数、最小数、和平均数。

在Linux系统下,编写一个Shell脚本,从键盘读入5个整数,然后显示最大数、最小数、和平均数。代码~~~3Q~~... 在Linux系统下,编写一个Shell脚本,从键盘读入5个整数,然后显示最大数、最小数、和平均数。代码~~~3Q~~ 展开
 我来答
百度网友79faf363
2019-11-18 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1212
采纳率:75%
帮助的人:54.9万
展开全部

#!/bin/bash

#任意输入5个数,判断最大值,最小值,总和

s=0

read -p "please input:" num

s=$(($s+$num))

max=$num

min=$num

avg=$(($s/5))

for i in `seq 4`

do

      read -p "please input:" num
s=$(($s+$num))

      if [ $num -le $min ];then
min=$num
fi

      if [ $num -ge $max ];then
max=$num
fi

done

echo max:$max min:$min avg:$avg

扩展资料:

for循环:

一般格式为:

for var in item1 item2 ... itemN

do

    command1

    command2

    ...

    commandN

done

写成一行:

for var in item1 item2 ... itemN; do command1; command2… done;

匿名用户
2013-11-13
展开全部
楼上的程序我执行到第“5”行那就出错了,更别说结果了;我专门写了简单易懂的,程序如下:
#!/bin/bash
echo " Please input 5 word "
echo -n " word 1: "
read word1
echo -n " word 2: "
read word2
echo -n " word 3: "
read word3
echo -n " word 4: "
read word4
echo -n " word 5: "
read word5

if [ "$word1" -ge "$word2" -a "$word1" -ge "$word3" -a "$word1" -ge "$word4" -a "$word1" -ge "$word5" ]
then
echo -n " Max: $word1"
elif [ "$word2" -ge "$word1" -a "$word2" -ge "$word3" -a "$word2" -ge "$word4" -a "$word2" -ge "$word5" ]
then
echo -n " Max: $word2"
elif [ "$word3" -ge "$word2" -a "$word3" -ge "$word1" -a "$word3" -ge "$word4" -a "$word3" -ge "$word5" ]
then
echo -n " Max: $word3"
elif [ "$word4" -ge "$word2" -a "$word4" -ge "$word3" -a "$word4" -ge "$word1" -a "$word4" -ge "$word5" ]
then
echo -n " Max: $word4"
else
echo -n " Max: $word5"
fi

if [ "$word1" -le "$word2" -a "$word1" -le "$word3" -a "$word1" -le "$word4" -a "$word1" -le "$word5" ]
then
echo -n " Min: $word1"
elif [ "$word2" -le "$word1" -a "$word2" -le "$word3" -a "$word2" -le "$word4" -a "$word2" -le "$word5" ]
then
echo -n " Min: $word2"
elif [ "$word3" -le "$word2" -a "$word3" -le "$word1" -a "$word3" -le "$word4" -a "$word3" -le "$word5" ]
then
echo -n " Min: $word3"
elif [ "$word4" -le "$word2" -a "$word4" -le "$word3" -a "$word4" -le "$word1" -a "$word4" -le "$word5" ]
then
echo -n " Min: $word4"
else
echo -n " Min: $word5"
fi

echo " Ave: expr '($word1 \+ $word2 \+ $word3 \+ $word4 \+ $word5)\/5'"
本程序在我电脑是可以执行出结果的,要是在你的系统执行出错,请告知我。谢谢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-13
展开全部
1 #!/bin/bash
2 echo "**********please iput 5 number***********************"
3 echo "you must input one and press enter until input 5 number"
4 read x
5 max=$x
6 min=$x
7 avg=$x
8 i=1
9 while [ $i -lt "5" ]
10 do
11 let "i+=1"
12 read x
13 if [ "$x" -gt "$max" ]
14 then max=$x
15 fi
16 if [ "$x" -le "$min" ]
17 then min=$x
18
19 fi
20 let "avg=$avg+$x"
21 done
22 avg=$(echo "scale=3;$avg/5"|bc -l) #scale控制平均数的精度
23 echo "***********the result***************"
24 echo "max=$max "
25 echo "min=$min "
26 echo "avg=$avg"
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
非梦454
2016-06-18
知道答主
回答量:1
采纳率:0%
帮助的人:1112
展开全部
  
#!/bin/bash
read num
max=$num
min=$num
for((i<1;i<10;i++))
do
read num
if test $max -le $num
then
max=$num
fi
if test $min -ge $num
then
min=$num
fi
done
echo "max=$max,min=$min"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式