51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2447|回复: 6
打印 上一主题 下一主题

[原创] 一个关于T-SQL的小问题··

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-8-7 14:01:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
--九九乘法口诀表
declare @i int,@j int,@k int,@tem varchar(400)
set @i=1
set @k=0
set @j=1
set @tem=''
while(@i<=9)
  begin
set @j=1
    while(@j<10 and @j<=@i)
         begin
                set @k=@i*@j
                set @tem=@tem+' '+cast(@i as varchar(5))+'x'+cast(@j as varchar(5))+'='+cast(@k as varchar(5))  
                set @j=@j+1
         end
    set @i=@i+1
print @tem
  end
不知道为什么老有重复的出现 很是郁闷。。。希望好心人帮帮我忙。 打印出三角形的99表
打印出来的结果是

[ 本帖最后由 wang_no1 于 2009-8-11 19:20 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-8-7 15:51:20 | 只看该作者
把你得出的结果发上来看一下啊。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-8-7 15:53:51 | 只看该作者
set @tem=@tem+' '+cast(@i as varchar(5))+'x'+cast(@j as varchar(5))+'='+cast(@k as varchar(5))
应该是你这句有问题。你的格式控制不是很正确哦。好像打不出来三角形的。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-8-11 19:20:45 | 只看该作者

回复 2# 的帖子

已经发上来了  谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-8-11 19:21:32 | 只看该作者

回复 3# 的帖子

您有什么好的建议吗 谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-8-11 23:20:37 | 只看该作者
我觉得你的程序是按行输出的 可是J的值始终都是从1-i之间赋值 也就是说每个循环后J没有自加1  第二行J=2开始
当然我是不懂你所用的编程语言的 呵呵
declare @i int,@j int,@k int,@tem varchar(400)
set @i=1
set @k=0
set @j=0
set @tem=''
while(@i<=9)
  begin
set @j=1------>set @j=@j+1
    while(@j<10 and @j<=@i)
         begin
                set @k=@i*@j
                set @tem=@tem+' '+cast(@i as varchar(5))+'x'+cast(@j as varchar(5))+'='+cast(@k as varchar(5))  
                set @j=@j+1
         end
    set @i=@i+1
print @tem
  end
下面这个是抄来的 你试试
Declare  @i Int
         ,@j Int
         ,@Out Varchar(5000)

Set @i=1
Set @j=1  
Set @Out=''

While @i<=9
  Begin

While @j<=@i
      Begin
        Set @Out= @Out + Cast(@j As Varchar(10))+ '×' + Cast(@i As Varchar(10))
                 + '=' + Cast(@j*@i As Varchar(1000))

        If @j*@i>=10
            Set @Out=@Out + ' |'  --1个空格
        Else
            Set @Out=@Out + '  |' --2个空格

  Set @j=@j+1        
   End

    Print @Out
    Set @Out=''
--    回车换行
--    Print CHAR(13)+CHAR(10)  

Set @i=@i+1
    Set @j=1
End

[ 本帖最后由 amita 于 2009-8-12 11:24 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-8-12 18:08:35 | 只看该作者
谢谢大家的帮忙。。。。我自己解决了  哈哈
--九九乘法口诀表
declare @i int,@j int,@k int,@tem varchar(400)
set @i=1
set @k=0
set @j=1
set @tem=''
while(@i<=9)
  begin
set @j=1
  set @tem=''
    while(@j<10 and @j<=@i)
         begin
                set @k=@i*@j
                set @tem=@tem+' '+cast(@j as varchar(5))+'x'+cast(@i as varchar(5))+'='+cast(@k as varchar(5))  
                set @j=@j+1
         end
    set @i=@i+1
print @tem
  end
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 11:54 , Processed in 0.069390 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表