newuser 发表于 2010-4-7 09:43:48

乘法口诀排列的问题?[已解决]

本帖最后由 newuser 于 2010-4-7 16:55 编辑

Dim $i,$j
Dim $s=""
For $i=1 To 9
        For $j=1To 9
                $s=$s&$i&"*"&$j&"="&($i*$j)&" "
        Next
        $s=$s&@CRLF
Next
MsgBox(0,"乘法口诀列式",$s)
这是SkyFree的代码,我想进行"输出列对齐",可是试了半天不行,大家有好的办法吗?这是外甥女提的问题,哎!

C.L 发表于 2010-4-7 10:58:14

Dim $i,$j
Dim $s=""
For $i=1 To 9
        For $j=1To 9
                $s&=StringFormat ("%2d*%2d=%02d",$i,$j,$i*$j)&""
        Next
        $s=$s&@CRLF
Next
$s = StringReplace ($s,"=0","=")       
MsgBox(0,"乘法口诀列式",$s)

newuser 发表于 2010-4-7 11:32:50

回复 2# C.L
谢谢,先吃饭再测试,呵呵!

lpxx 发表于 2010-4-7 12:46:31

本帖最后由 lpxx 于 2010-4-7 12:49 编辑

想进行"输出列对齐"?Dim $i,$j
Dim $s=""
For $i=1 To 9
      For $j=1To 9
                $s=$s&$i&"*"&$j&"="&($i*$j)&" "& @TAB
      Next
      $s=$s&@CRLF
Next
MsgBox(0,"乘法口诀列式",$s)

是这样么?

newuser 发表于 2010-4-7 15:54:46

本帖最后由 newuser 于 2010-4-8 08:42 编辑

回复 2# C.L

谢谢,有点明白了,呵呵!

Dim $i,$j
Dim $s=""
For $i=1 To 9
      For $j=1To 9
                $s&=StringFormat ("%2d *%2d=%-2d",$i,$j,$i*$j)&""
      Next
      $s=$s&@CRLF
Next
;$s = StringReplace ($s,"=0","=")       修改了StringFormat(),该行可以省略掉了    
MsgBox(0,"乘法口诀列式",$s)

;感谢C.L
;StringFormat("格式控制字符串",变量1[,...变量32])
;返回根据“格式控制字符串”参数定义中的“变量格式”格式化后的字符串
;好绕嘴,就是根据“格式控制字符串定义的格式进行后续变量的输出
; % 格式控制字符串标识
; 2d 以整数类型输出,2是输出的宽度
; - 在指定的宽度左对齐,默认是右对齐
;我将$s&=StringFormat ("%2d*%2d=%2d",$i,$j,$i*$j)&"" 改成 $s&=StringFormat ("%2d *%2d=%-2d",$i,$j,$i*$j)&""

;StringReplace("字符串","搜索串"或起始位置,"替换串"[,数量[区分大小写]]
;$text = StringReplace("this is a line of text", " ", "-")
;$numreplacements = @extended

;@extended 扩展函数返回值,常用于StringReplace()

;MsgBox(0, "替换后:", $text)
;MsgBox(0, "替换操作次数:", $numreplacements)

netegg 发表于 2010-4-7 15:57:30

内循环终值到$i就行了吧

newuser 发表于 2010-4-7 16:01:40

回复 4# lpxx

@TAB制表符,更精简了,呵呵!StringFormat @TAB都看过,看来还是在实践中学真知啊!

boyhong 发表于 2010-4-7 16:59:21

经验啊。。。。这是书本是学不到的。。。

newuser 发表于 2010-4-8 08:34:50

本帖最后由 newuser 于 2010-4-8 08:43 编辑

回复 6# netegg
真是一个小九九,条条通罗马!
换了以下顺序,就满足了外甥女的要求,呵呵!

Dim $i,$j
Dim $s=""
For $i=1 To 9
      For $j=1To $i
                $s=$s&$j&"*"&$i&"="&($j*$i)&" "& @TAB
      Next
      $s=$s&@CRLF
Next
MsgBox(0,"乘法口诀列式",$s)

3mile 发表于 2010-7-3 11:20:39

Dim $i,$j
Dim $s=""
Dim $n=1
For $i=1 To 9
      For $j=$nTo 9
                $s&=StringFormat ("%2d*%1d=%-3d",$i,$j,$i*$j)
      Next
      $s=$s&@CRLF
                $n+=1
Next
$s = StringReplace ($s,"=0","=")      
MsgBox(0,"乘法口诀列式",$s)

3mile 发表于 2010-7-3 11:22:52

Dim $i,$j
Dim $s=""
;Dim $n=1
For $i=1 To 9
      For $j=1To $i
                $s&=StringFormat ("%2d*%1d=%-3d",$i,$j,$i*$j)
      Next
      $s=$s&@CRLF
                ;$n+=1
Next
$s = StringReplace ($s,"=0","=")      
MsgBox(0,"乘法口诀列式",$s)
页: [1]
查看完整版本: 乘法口诀排列的问题?[已解决]