回 帖 发 新 帖 刷新版面

主题:QB71 快进来啊 出人命啦

9总是跑到前面来 这是个对称图形         
         9                   
        989
       98789
      9876789
       98789
        989
         9
刚才弄错了 是这样的。。。。
用双重循环做啊~QB71帮忙。。。谢谢

回复列表 (共7个回复)

沙发

请看帖子:高手请来指点一下

板凳

数学方法 :
CLS
  INPUT "Line number"; x '有一个缺点,x最大只能取7不然会溢出
  length = 2 * x - 1

CLS
  FOR i = 1 TO x
   multione1@ = (10 ^ i - 1) / 9
   multione2@ = (10 ^ (2 * i - 1) - 1) / 9
   value@ = multione2@ * 10 - multione1@ ^ 2
   k$ = LTRIM$(STR$(value@))
   LOCATE , (length - LEN(k$)) / 2 + 1
   PRINT k$
  NEXT

  FOR i = x - 1 TO 1 STEP -1
   multione1@ = (10 ^ i - 1) / 9
   multione2@ = (10 ^ (2 * i - 1) - 1) / 9
   value@ = multione2@ * 10 - multione1@ ^ 2
   k$ = LTRIM$(STR$(value@))
   LOCATE , (length - LEN(k$)) / 2 + 1
   PRINT k$
  NEXT
END

RUN   (QBasic时代谁还用RUN啊)
Line number?7

3 楼

(接上楼,第6和第8行贴出时有些不对劲)
      9
     989
    98789
   9876789
  987656789
98765456789
9876543456789
98765456789
  987656789
   9876789
    98789
     989
      9

4 楼

发贴时需要注意一点的是
1. 第一行前面的空格会被系统全部删掉
   (所以你的9就算放在中间也会跑到最前面去)
2. 其他行行首如果只有一个空格的话也会自动被删掉
   (所以行的前面如果要加空格就最少要有两个或以上)

如果只是图形的要求的话,
程序中不要用数字值来做
改用字符来写就不会溢出了.
虽然没有什么实际意义
还是鼓励大家多练练手力吧.

5 楼

a$="9876789"
c=len(a$)
for b=1 to c
d=c\2
print left$(a$,d);right$(a$,c-d)
next b
end

6 楼

单从表面上看,
我觉得楼上的程序实现不了效果的.

看这些程序多了,也就无言
希望大家有条件的多用QB运行一下
只有从错误中才能学习到更多的细节.

defint a-z
a$="9876543210123456789"
k=1
x=1
do
  print spc(20-x);left$(a$,x);right$(a$,x-1)
  if x=7 then k=-1
  x=x+k
loop while x

7 楼

谢谢影子鬼,这一题我正好也要问。

我来回复

您尚未登录,请登录后再回复。点此登录或注册