设计一个shell程序,该程序能接收用户从键盘输入的20个整数,然后使用while求出其总和,最大值和最小值
时间: 2023-12-03 12:06:33 浏览: 155
下面是一个简单的Shell程序,可以接收用户从键盘输入的20个整数,并使用while循环求出它们的总和、最大值和最小值:
```bash
#!/bin/bash
echo "请输入20个整数:"
sum=0
max=0
min=0
i=1
while [ $i -le 20 ]
do
read num
sum=$((sum + num))
if [ $i -eq 1 ]; then
max=$num
min=$num
else
if [ $num -gt $max ]; then
max=$num
fi
if [ $num -lt $min ]; then
min=$num
fi
fi
i=$((i + 1))
done
echo "总和为:$sum"
echo "最大值为:$max"
echo "最小值为:$min"
```
在这个程序中,我们首先使用`echo`命令提示用户输入20个整数。然后使用`sum`、`max`、`min`和`i`四个变量分别记录总和、最大值、最小值和当前输入的整数个数。接下来使用`while`循环读取20个整数,每次读取一个整数后更新`sum`、`max`和`min`的值。最后使用`echo`命令输出计算结果。
相关问题
设计一个 Shell 程序,该程序能接收用户从键盘输入的 20 个整数,然后 求出其总和、最大值和最小值。
设计一个简单的Shell脚本(假设使用bash语言)来完成这个任务,可以按照以下步骤编写:
```bash
#!/bin/bash
# 初始化变量
total=0
max=-inf
min=+inf
# 提示用户输入20个整数
echo "请输入20个整数:"
for ((i = 1; i <= 20; i++)); do
read number
# 计算总和
total=$((total + number))
# 更新最大值和最小值
if [ "$number" -gt "$max" ]; then
max=$number
elif [ "$number" -lt "$min" ]; then
min=$number
fi
done
# 输出结果
echo "数字的总和是: $total"
echo "最大值是: $max"
echo "最小值是: $min"
```
在这个脚本中,我们首先声明三个变量`total`用于存储总和,`max`初始设为负无穷大,`min`设为正无穷大。接着,通过循环提示用户输入20个整数,并在每次输入后更新总和和查找最大值/最小值。最后,打印出计算的结果。
设计一个shell程序,该程序能接收用户从键盘输入的20个整数,然后求出其总和,最大值和最小值
下面是一个简单的shell脚本,可以实现这个功能:
```bash
#!/bin/bash
# 初始化总和、最大值和最小值
sum=0
max=0
min=0
# 循环读取用户输入的20个整数
for i in {1..20}
do
echo "请输入第 $i 个整数:"
read num
# 判断用户输入是否为整数
if ! [[ "$num" =~ ^[0-9]+$ ]]; then
echo "输入不合法,请输入一个整数。"
exit 1
fi
# 计算总和
sum=$((sum + num))
# 更新最大值和最小值
if (( i == 1 )); then
max=$num
min=$num
else
if (( num > max )); then
max=$num
fi
if (( num < min )); then
min=$num
fi
fi
done
# 输出总和、最大值和最小值
echo "总和为:$sum"
echo "最大值为:$max"
echo "最小值为:$min"
```
使用方法:
1. 将上述脚本保存为一个文件,比如 `sum.sh`。
2. 打开终端,进入到脚本所在的目录。
3. 执行命令 `chmod +x sum.sh`,使脚本变为可执行文件。
4. 执行命令 `./sum.sh`,开始输入20个整数。
阅读全文