C高级第3天

1.从终端输入一个整数,判断是奇数还是偶数

read -p "请输入一个整数判断是奇数还是偶数" num
if [ $((num%2)) -eq 0 ]
then
	echo "$num是偶数"
elif [ $((num%2)) -ne 0 ]
then
	echo "$num是奇数"
fi


2.输入三个整数a, b, c。要求a中存储最小值,c中存储最大值

read -p "输入三个数判断最小值和最大值" a b c
if [ $a -gt $b ]
then
	temp=$a
	a=$b
	b=$temp
fi

if [ $a -gt $c ]
then
	temp=$a
	a=$c
	c=$temp
fi
echo a=$a

if [ $c -lt $a ]
then
	temp=$c
	c=$a
	a=$temp
fi

if [ $c -lt $b ]
then
	temp=$c
	c=$b
	b=$temp
fi
echo c=$c


3.输入一个成绩,返回是(0,100);若成绩>=90输出A,>=80输出B, >=60输出C,小于60输出D

read -p "请输入成绩0~100" num
if [ $num -ge 100 ]
then
echo "输入错误!"
elif [ $num -ge 90 ]
then
	echo "A"
elif [ $num -ge 80 ]
then
	echo "B"
elif [ $num -ge 60 ]
then
	echo "C"
elif [ $num -lt 60 ]
then
	echo "D"
fi

 

脚本中存有管理员名字和密码如下:name=admin passwd=12345678

要求从终端输入账户和密码:1.若账户不正确,输出用户名错误。2.若密码不正确,输出密码错误3.若均正确输出登录成功

#!/bin/bash

name=admin
password=12345678
read -p "请输入用户名:" a
read -p "请输入密码:" b
if [ -z "$a" ]
then
	echo "用户名为空"
elif [ -z "$password" ]
then
	echo "密码为空"
elif [ "$name" != "$a" ]
then
	echo "用户名错误!"
elif [ "$password" != "$b" ]
then
	echo "密码错误!"
elif [ "$name" == "$a" ]
then
	if [ "$password" == "$b" ]
	then
		echo "登录成功!"
	fi
fi

 

实现四则运算,例如输入8+4,输出12。8-4输出4....

#!/bin/bash

read -p "请输入要计算的式子" a tp b
echo $tp
case $tp in
	+)
		echo $a+$b=$((a+b))
		;;
	-)
		echo $a-$b=$((a-b))
		;;
	/)
		echo $a/$b=$((a/b))
		;;
	*)
		echo $a*$b=$((a*b))
		;;
esac

写一个脚本,要求提示输入软件名。然后提示是否确认下载该软件如果确认下载,输入 y 或者 yes 或者Yes 开始下载如果输入其他则不下载

read -p "请输入软件名:" name
read -p "是否确认下载该软件?" choice
case $choice in
	y | yes | Yes)
		echo "开始下载$name"
		;;
	*)
		echo "取消下载$name"
		;;
esac

C高级第3天_第1张图片

打印99乘法表
1x1= 1
2x1=2 2x2=4
3x1=3 3x2=6 3x 3= 9

#for循环

for i in $(seq 1 9)
do
	for j in $(seq 1 $i)
	do
		echo -n \ $j*$i=$((i*j))
	done
	echo " "
done

#while循环

i=1
j=1
while (( i<=9 ))
do
	#	echo $i
	j=1
	while (( j<=i ))
	do
		echo -n \ $j*$i=$((i*j))
		((j++))
	done 
	((i++))
	echo ""
done 

C高级第3天_第2张图片

打印以下图形。在以下图形的基础上修改,要求从终端输入金字塔层数,打印出对应层数金字塔

C高级第3天_第3张图片

#!/bin/bash 

#for循环

read -p "请输入金字塔层数:" n
for i in $(seq 0 $n) #0~层数
do

	for j in $(seq 0 $((n-i-1))) #打印空格数 n-层数-1
	do
		echo -n "0"
	done
	for k in $(seq 1 $((2*i+1))) #*个数是奇数个 1~2n+1个
	do
		echo -n "*"
	done
	echo " " #换行
done

#while循环

i=0
while ((i<=n))
do 
	j=0
	while ((j<=n-i-1))
	do
		echo -n " "
		((j++))
	done 
	k=1
	while ((k<=2*i+1))
	do
		echo -n "*"
		((k++))
	done
	echo " "
	((i++))
done 

C高级第3天_第4张图片

从终端输入字符串,将字符串倒置存储。例如输入abcde,结果为edcba

read -p "请输入字符串:" val
len=${#val}

#for循环

for((i=len-1;i>=0;i--))
do
	str1=${val:i:1} #从左往右字符串的第i位开始取1位
	str2=$str2$str1 #拼接字符串
done
echo $str2

#while循环

i=len-1
while ((i>=0))
do
	str1=${val:i:1}
	str2=$str2$str1
	((i--))
done
echo $str2

C高级第3天_第5张图片

你可能感兴趣的:(linux学习,算法,数据结构)