Board logo

标题: 九九乘法表 [打印本页]

作者: namejm     时间: 2006-12-26 13:00    标题: 九九乘法表
  圣诞实在无聊,发个无聊的东西出来娱乐一下:

@echo off
:: 九九乘法表
set num=0
for /l %%i in (1,1,9) do (
for /l %%j in (1,1,%%i) do call :multiply %%i %%j
)
pause>nul
goto :eof

:multiply
set /a num+=1
set /a var=%1*%2
set var=%2×%1=%var%
set var=%var%
if %2 equ 1 (set var=%var:~0,5%) else set var=%var:~0,6%
set str=%str% %var%
if %num% equ %1 echo %str%&set str=&set num=0
goto :eof

  稍微修改一下之后,排版更加规整。

Last edited by namejm on 2006-12-26 at 08:14 AM ]

作者: lxmxn     时间: 2006-12-26 13:57

  学习了~

  版面很规整,for的嵌套也用的经典。

作者: redtek     时间: 2006-12-26 21:43
哇噻~~顶!!!
输出的格式也是这么漂亮~~~欣赏!!!


1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81


想起了小时候背这东东的时光,哈哈……

作者: jmz573515     时间: 2006-12-26 22:34
好东西
不知道怎么把它输出到文件?

作者: redtek     时间: 2006-12-26 22:51

版主的.bat >乘法表.txt


执行后(屏幕什么都不显示,因为还有一个pause需要你按一下键),按回车,就行了:)

执行后将内容输出到 乘法表.txt  文件中。

作者: jmz573515     时间: 2006-12-26 22:59
学习了,这么简单的道理,哎~~

作者: lxmxn     时间: 2006-12-27 02:41
Originally posted by redtek at 2006-12-26 09:51:

版主的.bat >乘法表.txt


执行后(屏幕什么都不显示,因为还有一个pause需要你按一下键),按回车,就行了:)

执行后将内容输出 ...


  兄不说,我还不知道这种方法呢。汗……学习了.

作者: vkill     时间: 2006-12-27 07:05
namejm兄喜欢研究,学习值得

作者: electronixtar     时间: 2006-12-27 08:16

兄不说,我还不知道这种方法呢。汗……学习了.


……

作者: flamey     时间: 2007-1-1 04:46
利害

作者: weapfe     时间: 2007-1-1 05:20
版主的.bat >乘法表.txt
~~~~N~了

作者: zh159     时间: 2007-1-1 05:44
Originally posted by redtek at 2006-12-26 08:43:
......
想起了小时候背这东东的时光,哈哈……

常常和别人比速度,那时候一般25秒左右背完

作者: KUN     时间: 2007-1-1 05:47
同当时学习C语言时差不多!哈哈!

作者: redtek     时间: 2007-1-31 06:55
Originally posted by zh159 at 2006-12-31 16:44:

常常和别人比速度,那时候一般25秒左右背完


够快~~~

再次欣赏乘法表~~

作者: bob1989     时间: 2007-1-31 10:41
学习````

作者: qjbm     时间: 2007-2-1 06:04
灌水了....

@ECHO %DBG% OFF
SETLOCAL ENABLEDELAYEDEXPANSION

for /l %%i in (1,1,9) do (
for /l %%j in (1,1,%%i) do (
set /a h=%%i*%%j
set /p=%%i×%%j^=!h! <nul
if %%i==%%j echo.
)
)


真成灌水了..原来关键在于控制排版...

不过排版问题还是解决了,:)用Tab代替空格就可以了.就可以不必花心思排版了.

Tab在论坛中无法正确显示...???

Last edited by qjbm on 2007-1-31 at 05:38 PM ]

作者: bbq123bbq     时间: 2007-2-1 09:15
有待研究...吸收

作者: 163lom     时间: 2007-2-10 18:53
象偶这样的只能做死工,ECHO输出……

作者: namejm     时间: 2007-2-11 00:31
  qjbm 用Tab键来控制排版,精简了不少代码,高。

作者: zxjaaa     时间: 2007-2-16 09:39
玩玩

作者: 6622186     时间: 2007-2-17 14:07    标题: 钦佩
见到了批处理命令的厉害.

作者: spiegboy     时间: 2007-2-17 14:23
16楼哥们的排版还是不如楼主的整齐,个人觉得楼主的比较完美

我觉得还可以化简一下

@echo off
:: 99 乘法表
setlocal enabledelayedexpansion
for /l %%a in (1,1,9) do (
for /l %%b in (1,1,%%a) do (
set /a i+=1
set /a ans=%%a*%%b
set ans=%%b×%%a=!ans!
set res=!res! !ans:~0,6!
if !i! equ %%a echo!res!&set res=& set i=0
)
)
pause

作者: PPdos     时间: 2007-2-17 17:43
16楼 已经提示:Tab在论坛中无法正确显示

所以你要把拷贝中 !h!和<nul 之间的空格替换成Tab键的空格

set /p=%%i×%%j^=!h! <nul

作者: namejm     时间: 2007-2-21 03:54
  spiegboy 的代码非常不错,加分了。

作者: microsoftxly     时间: 2007-3-1 07:35    标题: namejm版主在吗?
小弟是刚刚注册到这个论坛的.有很多不懂的.请多多照顾一下.同时也希望有愿意收徒弟而且人际关系和心底善良的加小弟QQ:453803302

跪谢了!

作者: ran520     时间: 2007-3-1 13:47
厉害``

作者: huzixuan     时间: 2007-5-1 16:37
斑竹和16楼兄写的真好,刚进来那会还写不了 今天我也可以写个了

@echo off
set "num1=1"
set "flag=0"
:do
if %num1% lss %flag% (
set /a "num1+=1"
) else (
echo.
set "num1=1"
set /a "flag+=1"
)
set /a "num=%num1%*%flag%"
set/p=%num1%×%flag%=%num% <nul
if %num1% equ 9 (pause>nul&exit)
goto do

作者: DarkDrgon     时间: 2007-5-2 13:17
问一下,我是一个新手,就是按照楼上的说使用**.XXX >**.XXX 就可以实施输出的是吧?那么比如我想要输出一个文件的时候只要输入一个文件名就可以帮我输出到一个相应的TXT文件(或固定的比如1.TXT),要怎么做呢?

Last edited by DarkDrgon on 2007-5-2 at 12:37 AM ]

作者: hngaoshou     时间: 2007-5-2 13:36
为什么要按回车呢?

作者: ccwan     时间: 2007-5-8 11:24
今天有看到这个帖子了,来一段vbs版的九九乘法表吧。


  1. Dim i, m , s
  2. For i = 1 To 9
  3. s = s & vbLf
  4. For m = 1 To i
  5. s = s & m & "×" & i & " = " & Left(i * m & " ", 2) & Space(2)
  6. Next
  7. Next
  8. MsgBox s ,,"九九乘法表"
ccwan发表于: 2007-05-08 11:23

作者: 6622186     时间: 2007-7-10 16:29
vbLf 这是什么

作者: junchen2     时间: 2007-9-1 21:37
学习````

作者: upperc     时间: 2008-4-6 14:39
经典啊。。。。。
是LZ无聊时候写的,学习中阿 !!!!!!!!!!!!

作者: txiaowen     时间: 2008-4-6 14:49
学习中...

作者: breakme     时间: 2010-1-28 13:59    标题: 哇塞,我来个一行代码的
@echo off&setlocal EnableDelayedExpansion&echo.&echo 小学乘法口诀表&for /l %%i in (1,1,9)do for /l %%j in (1,1,%%i)do (set /a a=%%i*%%j&set "b=!b! %%j*%%i = !a!"&if %%j equ %%i echo !b!&set "b=")&if %%j equ 9 pause>nul

作者: killkk     时间: 2010-1-28 22:53
强悍啊。。。 羡慕死我了。。。 0.0

作者: acaigg     时间: 2010-12-28 15:20
学习了