一.实验要求:

  • 给定任意一个字符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)   

打印倒序NxN乘法表的更多相关文章

  1. 使用VS2017进行Python代码的编写并打印出九九乘法表

    我们来盘一盘怎么使用VS2017进行python代码的编写并打印出九九乘法表. 使用Visual Studio 2017进行Python编程不需要太复杂的工作,只需要vs2017安装好对Python的 ...

  2. 编写Java程序,使用循环结构打印出九九乘法表

    编写Java程序,使用循环结构打印出九九乘法表 效果如下: 实现代码: public class Multiplication99 { public static void main(String[] ...

  3. java打印一下九九乘法表

    public class Multiplication { public static void main(String[] args) { printTable(); } // 打印九九乘法表 pu ...

  4. 在网页中打印一个99乘法表--JavaScript描述

    99乘法表使用for循环,在很多公司的面试中常会要求面试者手写这个算法,算是比较经典的for循环的应用 <!DOCTYPE html><html lang="en" ...

  5. Python打印:九九乘法表

    代码: i = 1 while i <= 9: n = 1 while n <=i: print("%d*%d=%d\t"%(n,i,i*n),end="&q ...

  6. python 打印9*9乘法表

    # -*- coding: utf8 -*- # Author:wxq 1. for i in range(1,10): for j in range(1,i+1): print "%d*% ...

  7. Java打印9*9乘法表

    废话不多说直接贴代码, 先放一个标准的正三角形状的 for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System ...

  8. 011_9*9 乘法表(编写 shell 脚本,打印 9*9 乘法表)

    #!/bin/bashfor i in `seq 9`do    for j in `seq $i`        do           echo -n "$i*$j=$[i*j] &q ...

  9. python使用for循环打印9*9乘法表。

    代码如下: for a in range(1, 10): for b in range(1, 10): if b <= a: print("%d*%d=%d\t" % (b, ...

随机推荐

  1. 重温经典之赫夫曼(Huffman)编码

    先看看赫夫曼树假设有n个权值{w1,w2,…,wn},构造一个有n个叶子结点的二叉树,每个叶子结点权值为wi,则其中带权路径长度WPL最小的二叉树称作赫夫曼树或最优二叉树. 赫夫曼树的构造,赫夫曼最早 ...

  2. 【单调队列】P1886 滑动窗口

    GET 单调队列 题目描述 现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口.现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值. 例如: Th ...

  3. Linux菜鸟起飞之路【十】进程管理

    一.基本概念 进程:程序的一次动态执行 守护进程:在后台运行并提供系统服务的进程 僵尸进程:完成了生命周期但却依然留在进程表中的进程,我们称之为 “僵尸进程” 父进程:指已创建一个或多个子进程的进程. ...

  4. com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 x 无效

    在启动Tomcat项目时,控制台报错:nested exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSeque ...

  5. paper:synthesizable finit state machine design techniques using the new systemverilog 3.0 enhancements之fsm summary

    主要是1.不要用1段式写FSM 2.不要用状态编码写one-hot FSM ,要用索引编码写one-hot FSM.

  6. Thinkphp 5 调试执行的SQL语句

    在模型操作中 ,为了更好的查明错误,经常需要查看下最近使用的SQL语句,我们可以用getLastsql方法来输出上次执行的sql语句.例如: User::get(1); echo User::getL ...

  7. OOP之单例模式

  8. Windows Bash on Ubuntu

    windows Bash on Ubuntu, 之前就是尝试一下,更多是在不安装虚拟机的情况下,学下 bash. 这几天,在 上面 make u-boot,这个用起来比 cygwin方便多了. 之前在 ...

  9. Python9-loggin模块-day29

    什么叫日志日志 是用来记录用户行为或者代码的执行过程 # import logging # logging.debug('debug message') #低级别的 排除信息 # logging.in ...

  10. java8新特性:接口的默认方法与静态方法

    接口中一共可以定义三种方法: 1.抽象方法,也就是需要实现者必须实现的方法,最常见的那种 2.默认方法,不需要实现者实现 3.静态方法,不需要实现者实现 默认方法: 允许在已有的接口中添加新方法,而同 ...