2024.2.17 作业

1.终端输入一个字符,判断是大写字母小写字母还是数字字符

代码:

#! /bin/bash
read var
case $var in
    [0-9])
        echo 数字
        ;;
    [[:lower:]])
        echo 小写字母
        ;;
    [[:upper:]])
        echo 大写字母
        ;;
esac

2.终端输入年月,需要考虑闰平年,判断该月有多少天(2月闰年29天,平年28天)

代码:

#!/bin/bash
arr=(31 28 31 30 31 30 31 31 30 31 30 31)
read -p "请输入年份>>" var1
read -p "请输入月份>>" var2
if [ $((var1%4)) -eq 0 ] && [ $((var1%100)) -ne 0 ] || [ $((var1%400)) -eq 0 ]
then
    arr[1]=29
fi
echo ${arr[var2-1]}

3.使用循环求100-1000内的水仙花数

代码:

#!/bin/bash
for((i=100;i<1000;i++))
do
    ((a=i/100))
    ((b=(i%100)/10))
    ((c=i%10))
    if [ $((a*a*a+b*b*b+c*c*c)) -eq $i ]
    then
        echo $i
    fi
done

4.求稀疏数组中元素的和(下标不连续)

代码:

#!/bin/bash
arr=([0]=12 [9]=54 [23]=85 [87]=8)
sum=0
for i in `echo ${arr[*]}`
do 
    ((sum=sum+i))
    ((i++))
done
echo $sum

5.使用循环求家目录下目录文件和普通文件的个数

代码:

#!/bin/bash
dir=0
file=0
for i in `ls ~`
do
    if [ -d "$HOME/$i" ]
    then
        ((dir++))
    fi
    if [ -f "$HOME/$i" ]
    then
        ((file++))
    fi
done
echo "家目录下的目录文件个数为:$dir"
echo "家目录下的普通文件个数为:$file"

6.用shell写冒泡排序

代码:

#!/bin/bash
read -a arr
len=${#arr[*]}
for((i=1;i<=len-1;i++))
do
    for((j=0;j<len-i;j++))
    do
        if [ ${arr[j]} -gt ${arr[j+1]} ]
        then
            t=${arr[j]}
            arr[j]=${arr[j+1]}
            arr[j+1]=$t
        fi
    done
done
echo ${arr[*]}

7.终端输入学生成绩,判断等级100-90A,90-80B,80-70C,70-60D,60以下不及格。(把输入不合理也考虑进去)

代码:

#!/bin/bash
read score
case $score in
    9?|100)
            echo A
            ;;
        8?)
            echo B
            ;;
        7?)
            echo C
            ;;
        6?)
            echo D
            ;;
        ?|1?|2?|3?|4?|5?)
            echo 不及格
        ;;
    *)
        echo 输入不合理
esac

  • 27
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值