2.使用Bourne shell编写一段程序脚本,完成以下功能: 用户输入若干(最多9个)个数字,求用户所输入的所有数字的平均数。
时间: 2024-02-27 12:55:17 浏览: 21
好的,以下是Bourne shell编写的程序脚本,可以实现求用户输入的数字的平均数:
```
#!/bin/sh
echo "请输入数字,最多9个,以空格分隔:"
read -a nums
sum=0
for num in "${nums[@]}"; do
sum=$((sum+num))
done
count=${#nums[@]}
avg=$(echo "scale=2; $sum/$count" | bc)
echo "平均数为:$avg"
```
程序首先提示用户输入数字,然后使用`read`命令读取用户输入的一行数字,使用`-a`选项将输入的数字转为数组,最多9个数字。
程序接着使用循环遍历数组,计算所有数字的总和。
然后,程序计算输入数字的个数,使用`bc`命令计算平均数,并将结果保留两位小数。
最后,程序输出平均数。
相关问题
(1) 实验内容要求 1.掌握一些高级的Bourne shell程序语句。 2.使用Bourne shell编写一段程序脚本,完成以下功能: 用户输入若干(最多9个)个数字,求用户所输入的所有数字的平均数。 (2) 实验结果 该程序代码如下:
以下是 Bourne shell 编写的求平均数的脚本程序:
```sh
#!/bin/sh
# 提示用户输入数字
echo "请输入数字,最多输入9个,以空格分隔:"
# 读取用户输入的数字,使用空格作为分隔符
read -a numbers
# 计算数字个数和总和
count=0
sum=0
for number in "${numbers[@]}"; do
if [ -n "$number" ]; then
count=$((count + 1))
sum=$((sum + number))
fi
done
# 计算平均数
if [ "$count" -gt 0 ]; then
average=$(echo "scale=2; $sum / $count" | bc)
echo "平均数为:$average"
else
echo "没有输入数字!"
fi
```
这个脚本程序首先提示用户输入数字,并使用 `read` 命令读取用户输入的数字,存储在名为 `numbers` 的数组中。
接下来,使用 `for` 循环遍历数组中的每个数字,计算数字个数和总和。需要注意的是,由于用户输入的数字可能包含空格,因此需要使用 `if` 判断当前数字是否为空。
最后,如果数字个数大于 0,则计算平均数,并输出结果。否则,输出提示信息。
需要注意的是,在计算平均数时,使用了 `bc` 命令来进行小数运算,并使用 `echo` 命令来进行输出。`scale=2` 表示精确到小数点后两位。
用Bourne shell,输出1-100以内的所有奇数。使用while循环。 带具体操作
好的,以下是使用Bourne shell编写的输出1-100以内的所有奇数的程序:
```shell
#!/bin/sh
i=1
while [ $i -le 100 ]
do
if [ `expr $i % 2` -ne 0 ]
then
echo $i
fi
i=`expr $i + 1`
done
```
上述代码中,使用了while循环,首先将变量i初始化为1,然后循环判断i是否小于等于100,如果是,则判断i是否为奇数,如果是,则输出i。最后,将i加1,继续下一次循环,直到i大于100为止。
其中,`expr $i % 2` 表示求 i 除以 2 的余数,如果余数不等于0,则表示i是奇数。
希望对你有所帮助!