2024-02-17 作业

作业要求:

  1. 终端输入一个字符,判断是大写字母小写字母还是数字字符。
  2. 终端输入年月,需要考虑闰平年,判断该月有多少天(2月闰年29天,平年28天)
  3. 使用循环求100-1000内的水仙花数
  4. 求稀疏数组中元素的和(下标不连续)
  5. 使用循环求家目录下目录文件和普通文件的个数
  6. 用shell写冒泡排序
  7. 终端输入学生成绩,判断等级100-90A,90-80B,80-70C,70-60D,60以下不及格。(把输入不合理也考虑进去)
  8. 整理今天的知识点

1.

运行代码:

#!/bin/bash
read -p "输入字符" c
case $c in
	[0-9])
		echo 数字
		;;
	[a-z])
		echo 小写
		;;
	[A-Z])
		echo 大写
		;;
esac

运行截图:

2.

运行代码:

#!/bin/bash
read -p "年>>>" year
read -p "月>>>" month
leap=0
if test $((year%4)) -eq 0 -a  $((year%100)) -ne 0 -o  $((year%400)) -eq	0
then
	leap=1
fi
i=1;
case $month in
	1|3|5|7|8|10|11|12)
		echo 31
		;;
	4|6|9|11)
		echo 30
		;;
	2)
		echo $((28+leap))
		;;
esac

运行截图:

3.

运行代码:

#!/bin/bash
for((i=100;i<=999;i++))
do
	ge=$((i%10))
	shi=$((i/10%10))
	bai=$((i/100))
	if test $((ge**3+shi**3+bai**3)) -eq $i
	then
		echo -n "$i "
	fi
done
echo

运行截图:

4.

运行代码:

#!/bin/bash
arr=( [1]=1 [3]=2 [5]=3 [7]=4 [9]=5 )
brr=(`echo arr[*]`)
for ((i=0;i<${brr[*]};i++))
do
	((sum+=brr[i]))
done
echo "sum=$sum"

运行截图:

5.

运行代码:

#!/bin/bash

arr=(`ls ~`)
num_dir=0
num_docu=0
len=${#arr[@]}
for((i=0;i<$len;i++))
do
	if [ -d ~/${arr[i]} ]
	then
		((num_dir++))
	elif [ -f ~/${arr[i]} ]
	then
		((num_docu++))
	fi
done
echo "num_dir=$num_dir"
echo "num_docu=$num_docu"

运行截图:

6.

运行代码:

#!/bin/bash

arr=($@)
for((i=${#arr[@]}-1;i>=0;i--))
do
	for((j=0;j<=i;j++))
	do
		if test $((arr[j])) -gt $((arr[j+1])) 
		then
			temp=${arr[j]}
			arr[j]=${arr[j+1]}
			arr[j+1]=$temp
		fi
	done
done
echo ${arr[@]}

运行截图:

7.

运行代码:

#!/bin/bash
read -p ">>>" score
case $score in
	9?|100)
		echo A
		;;
	8?)
		echo B
		;;
	7?)
		echo C
		;;
	6?)
		echo D
		;;
	[1-5][0-9]|[0-9])
		echo 不合格
		;;
	*)
		echo 不合理
		;;
esac

运行截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值