一.实验要求:

  • 给定任意一个字符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. cnpm 莫名奇妙bug 莫名奇妙的痛

    cnpm 莫名奇妙bug 莫名奇妙的痛 最近想搭建react@v16 和 react-router@v4,搭建过程打算用vue脚手架webpack模板那套配置方法(webpack3). 由于我之前安装 ...

  2. cena 测评机下载地址

    以下是cane的下载地址,现在分享给你们,希望有所帮助 下载地址百度云:https://pan.baidu.com/s/1JBXiVSZy-jhIc0V-F2ESPA 密码:hgtk 点击下载即可. ...

  3. 传智 Python基础班+就业班+课件 【最新完整无加密视频课程】

    点击了解更多Python课程>>> 传智 Python基础班+就业班+课件 [最新完整无加密视频课程] 直接课程目录 python基础 linux操作系统基础) 1-Linux以及命 ...

  4. mysql 的 case when 用法

    正确的格式: case when condition then result when condition then result when condition then result else re ...

  5. ESP8266入门学习笔记1:资料获取

    乐鑫官网:https://www.espressif.com/zh-hans/products/hardware/esp8266ex/overview 乐鑫资料:https://www.espress ...

  6. Linux学习-Tarball 的管理与建议

    使用原始码管理软件所需要的基础软件 从原始码的说明我们晓得要制作一个 binary program 需要很多咚咚的呢!这包括底下这些基础的软件: gcc 或 cc 等 C 语言编译程序 (compil ...

  7. Zend Framework 2中如何使用Service Manager

    end Framework 2 使用ServiceManager(简称SM)来实现控制反转(IoC).有很多资料介绍了service managers的背景,我推荐大家看看this blog post ...

  8. 排序算法总结 c描述

    概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大, ...

  9. 精通CSS高级Web标准解决方案(1-3 规划、组织与维护样式表)

    对文档应用样式 对代码进行注释/*......*/ 结构性注释 自我提示 删除注释.优化样式表 样式指南:解释代码与站点的视觉设计是如何组织在一起的 站点结构.文件结构.命名规则 编码标准:(X)ht ...

  10. K-means算法的优缺点

    K-means算法的优缺点 优点:原理简单,实现容易 缺点: 收敛较慢 算法时间复杂度比较高 \(O(nkt)\) 不能发现非凸形状的簇 需要事先确定超参数K 对噪声和离群点敏感 结果不一定是全局最优 ...