你的位置:首页 > 操作系统

[操作系统]打印倒序NxN乘法表


一.实验要求:

  • 给定任意一个字符N(N>0),然后打印NxN的倒序乘法表。

二.解决问题:

#/!bin/bash
#

#define function
NxN_fun(){

  local i=$1                    #定义一个局部变量i控制外层循环
  while [ $i -ge 1 ];do
    local j=$i                    #定义一个局部变量j控制内层循环
    while [ $j -ge 1 ];do
      echo -e -n "$i*$j=$[i*j]\t"
      let j--
    done
    echo                    #换行
    let i--
  done
}

#main
Flag=$(echo "$1" | sed 's/[0-9]//g' | wc -c)        #判断脚本参数是整型还是字符

if [ ! $# -eq 1 ];then                      #判断脚本参数个数
  echo ">_<||| 很尴尬~!!! Usage:$(basename $0) num."
  exit 5
elif [ ! $Flag -eq 1 ];then                #Flag值不等于1则给定的脚本参数为字符型

  echo ">_<||| 很尴尬~!!! Usage:$(basename $0) num."           #表情符号还是挺不错的

  exit 5

fi

NxN_fun $1
[ $? -eq 0 ]&&echo "打印$1*$1乘法表完成 (^_^) 嘻嘻"||echo "函数执行错误,请检查...(b_d) 戴了副眼镜"  #函数执行成功则打印乘法表

三.实验结果:

四.实验思考?

   1.怎么判断脚本所给参数是字符还是整型,有没有其他的方法?

 2.外层while循环参数能不能直接给$1 ,能怎么改,不能为什么?

五.让人欣慰的代码段是:

    Flag=$(echo "$1" | sed 's/[0-9]//g' | wc -c)