一.实验要求:

  • 给定任意一个字符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. 『jQuery』.html(),.text()和.val()的概述及使用--2015-08-11

    如何使用jQuery中的.html(),.text()和.val()三种方法,用于读取,修改元素的html结构,元素的文本内容,以及表单元素的value值的方法   本节内容主要介绍的是如何使用jQu ...

  2. python入门:输出1-100之内的所有奇数和偶数(自写)

    #!/urs/bin/env python # -*- coding:utf-8 -*- #输出1-100之内的所有奇数和偶数(自写) """ 给x赋值等于1,wehil ...

  3. Linux学习-使用传统程序语言进行编译的简单范例

    单一程序:印出 HelloWorld 编辑程序代码,亦即原始码 [root@study ~]# vim hello.c <==用 C 语言写的程序扩展名建议用 .c #include <s ...

  4. hql的笔记

    删除方法 getSession().delete(arg0); 今天写这个删除语句的时候运用这delete()这个方法,根据id删除记录,hql和普通的sql还是有区别的, 普通的sql封装好了del ...

  5. SPOJ 375 树链剖分 QTREE - Query on a tree

    人生第一道树链剖分的题目,其实树链剖分并不是特别难. 思想就是把树剖成一些轻链和重链,轻链比较少可以直接修改,重链比较长,用线段树去维护. 貌似大家都是从这篇博客上学的. #include <c ...

  6. 浅谈Http长连接和Keep-Alive以及Tcp的Keepalive

    原文:https://blog.csdn.net/weixin_37672169/article/details/80283935 Keep-Alive模式: 我们知道Http协议采用“请求-应答”模 ...

  7. NetCore 2.0 应用程序在centos 7上通过docker发布

    一  安装netcore 2.0 SDK 在centos 上面安装netcore 2.0 与window上面是不太一样的,注意,linux是不支持同时安装两个版本的.netcore SDK的,由于我之 ...

  8. day18-socket 编程

    1.Socket是网络上的使用的交互信息得方法,也叫套接字 用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 通讯原理 Soc ...

  9. luogu1903 【模板】分块/带修改莫队(数颜色)

    莫队算法模板 推荐阅读这篇博客 #include <algorithm> #include <iostream> #include <cstdio> #includ ...

  10. bzoj3172 luogu3966 [TJOI2013]单词

    蒟蒻也能写出来的AC代码!这题是AC自动机模板题.插入单词时用一个没出现过的字符隔开就行了. 一些细节请看注释 #include <iostream> #include <cstri ...