2022/7/15作业

1. 无符号整数,不考虑翻转后超出范围的情况,你需要将这个整数中每位上的数字进行反转。
   输入:123  输出321
   输入:45678 输出87654

#!/bin/bash
read -p "请输入一个无符号整数>>" var
len=${#var}         #取得整数长度
for ((i=1;i<=len;i++))
do
	var1= "$var1${var:0-i:1}"     #将整数以倒置方式取出并存入新的变量中
done
echo "var1=$var1"

 代码运行结果

请输入一个无符号整数>>123456
var1=654321

2. 从终端输入字符串,求出小写字母的个数,大写字母的个数,数字的个数。

#!/bin/bash
read -p "请输入一串字符串>>" str
len=${#str}     #取得字符串长度
count=0        #统计小写字母个数
Count=0        #统计大写字母个数
export LC_ALL=C   #取消本地语序
for ((i=1;i<=$len;i++))   #遍历字符串
do
	var=${str:i-1:1}    #依次取出各个字符
	case $var in
		[a-z])
			((count++))
			;;
		[A-Z])
			((Count++))
			;;
	esac
done
echo "小写字母个数为$count,大写字母个数为$Count"
unset LC_ALL     #恢复本地语序

代码运行结果

请输入一串字符串>>asdfASD
小写字母个数为4,大写字母个数为3

 3、要求输入年月日,输出这是今年的第几天

#!/bin/bash
read -p "请输入年份>>" year
read -p "请输入月份>>" month
read -p "请输入日>>" day
num=0
er=28
flag=0
if [ $((year%4)) -eq 0 ] && [ $((year%100)) -ne 0 ] || [ $((year%400)) -eq 0 ]  #判断平闰
then
	er=29
fi
case $month in
	"1")
		sum=$day
		;;
	"2")
		sum=$(($day+31))
		;;
	"3")
		sum=$(($day+31+$er))
		;;
	"4")
		sum=$(($day+31+$er+31))
		;;
	"5")
		sum=$(($day+31+$er+31+30))
		;;
	"6")
		sum=$(($day+31+$er+31+30+31))
		;;
	"7")
		sum=$(($day+31+$er+31+30+31+30))
		;;
	"8")
		sum=$(($day+31+$er+31+30+31+30+31))
		;;
	"9")
		sum=$(($day+31+$er+31+30+31+30+31+31))
		;;
	"10")
		sum=$(($day+31+$er+31+30+31+30+31+31+30))
		;;
	"11")
		sum=$(($day+31+$er+31+30+31+30+31+31+30+31))
		;;
	"12")
		sum=$(($day+31+$er+31+30+31+30+31+31+30+31+30))
		;;
	*)
		echo "输入的数据有误"
		flag=1
		;;
esac
if [ $flag -eq 0 ]
then
	echo "是该年第$sum天"
fi

 代码运行结果

请输入年份>>2000
请输入月份>>5
请输入日>>23
是该年第144天
-----------------------------------
请输入年份>>2001
请输入月份>>6
请输入日>>23
是该年第174天
------------------------------------
请输入年份>>2001
请输入月份>>5
请输入日>>23
是该年第143天

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

命如星火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值