免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8087 | 回复: 9
打印 上一主题 下一主题

用shell写乘法口诀如何写? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-19 20:41 |只看该作者 |倒序浏览
如题,用shell写完整得乘法口诀怎么写出来?

论坛徽章:
0
2 [报告]
发表于 2009-02-19 22:33 |只看该作者
for i in $(seq 1 9);do for j in $(seq 1 ${i}) ;do echo -n  -e "${j}x${i}=$(expr ${i} \* ${j})\t";done ;echo ;done

论坛徽章:
0
3 [报告]
发表于 2009-02-20 20:30 |只看该作者
疑问一个。
在shell这样写就会出错是为什么啊?
for i in $(seq 1 9);
do
        for j in $(seq 1 ${i}) ;
        do
               echo -n  -e "${j}x${i}=$(expr ${i} \* ${j})\t";
        done ;
         echo ;
done

它提示第6行错误:
还有就是,结果显示不对啊,格式是对了,不过就是结果不一样啊。
比如2x2=2*2
      2x3=3*2 并不是 2x2=4 2x3=6得结果显示啊!!

论坛徽章:
0
4 [报告]
发表于 2009-02-20 21:56 |只看该作者
修改了一下,

  1. #!/usr/bin/env bash
  2. for i in $(seq 1 9);
  3. do
  4.         for j in $(seq 1 ${i})
  5.         do
  6.                 echo -n  -e "${j}x${i}=$(expr ${i} \* ${j})\t"
  7.         done
  8. done

复制代码


结果:

  1. 1x1=1        1x2=2        2x2=4        1x3=3        2x3=6        3x3=9        1x4=4        2x4=8        3x4=12        4x4=16        1x5=5        2x5=10        3x5=15        4x5=20        5x5=251x6=6        2x6=12        3x6=18        4x6=24        5x6=30        6x6=36        1x7=7        2x7=14        3x7=21        4x7=28        5x7=35        6x7=42        7x7=49        1x8=8        2x8=163x8=24        4x8=32        5x8=40        6x8=48        7x8=56        8x8=64        1x9=9        2x9=18        3x9=27        4x9=36        5x9=45        6x9=54        7x9=63        8x9=72        9x9=81
复制代码

[ 本帖最后由 零二年的夏天 于 2009-2-20 21:57 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-02-20 22:40 |只看该作者

回复 #4 零二年的夏天 的帖子

强大  ~

论坛徽章:
2
丑牛
日期:2014-06-11 13:55:04ChinaUnix元老
日期:2015-02-06 15:16:14
6 [报告]
发表于 2009-02-21 14:14 |只看该作者

回复 #4 零二年的夏天 的帖子

不错

论坛徽章:
0
7 [报告]
发表于 2010-09-07 23:39 |只看该作者
expr是什么啊?

论坛徽章:
0
8 [报告]
发表于 2010-09-08 01:25 |只看该作者
  1. #!/bin/bash

  2. for (( i=1; i<=9; i++ ))
  3. do
  4.         for (( j=1; j<=i; j++ ))
  5.         do
  6.                 printf '%dx%d=%-3d' $i $j $(($i*$j))
  7.         done
  8.         echo
  9. done
复制代码


没想到 shell 脚本语法与 c\c++ 这么相似 {:3_200:}

论坛徽章:
1
2015年亚冠纪念徽章
日期:2015-11-03 10:11:03
9 [报告]
发表于 2010-09-08 11:02 |只看该作者
都是大神啊

论坛徽章:
2
未羊
日期:2013-11-05 11:40:14双子座
日期:2014-01-03 17:11:01
10 [报告]
发表于 2013-12-16 14:41 |只看该作者
本帖最后由 kanhuijilei 于 2013-12-16 14:42 编辑

根据8楼的稍微修改了下
  1. #!/bin/bash

  2. for (( i=1; i<=9; i++ ))
  3. do
  4.         for (( j=1; j<=i; j++ ))
  5.         do
  6.                 if [[ $i -le $j ]]; then
  7.                         printf '%dx%d=%-3d' $i $j $(($i*$j))
  8.                 else
  9.                         printf '%dx%d=%-3d' $j $i $(($i*$j))
  10.                 fi
  11.         done
  12.         echo
  13. done
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP