回 帖 发 新 帖 刷新版面

主题:我是新人,有点问题想请教

我学习QB快五天了;;可是我发现我好像就像书上说的纸上谈兵那伙儿人儿一样;;;;
比如说,昨天我看到一个问题,
1111111
1222221
1233321
1234321
1233321
1222221
1111111
用循环语句写出来;;我在QQ里问过,他们也帮我解答了
CLS
FOR i = 1 TO 7  
FOR j = 1 TO 7    
IF i = 1 OR j = 1 OR j = 7 OR i = 7 THEN      
PRINT "1";    
ELSEIF i = 2 OR j = 2 OR j = 6 OR i = 6 THEN      
PRINT "2";    
ELSEIF j = 3 OR i = 3 OR i = 5 OR j = 5 THEN      
PRINT "3";    
ELSEIF i = 4 THEN      
PRINT "4";    
END IF   
NEXT     
PRINT
NEXT
END 
这段程序我是看懂了;;可是怎么想出来的为什么这么编写就是不明白,就是不明白他们编程者的思路;;应该怎么办啊???是不是我对这方面没有天复的关系呢???谁可以告诉我一下问题出在那里了嘛??????

回复列表 (共4个回复)

沙发

偶认为这种办法不是很合理,如果说最里面的哪个不是4 而是10 或者是100 再这样做的话,就很麻烦了.

板凳

可以这样作!
CLS
INPUT n
r = 1: p = 2 * n - 1
w = p
DIM a(p, p)
DO
FOR i = r TO w
a(i, r) = r
a(r, i) = r
a(i, w) = r
a(w, i) = r
NEXT i
r = r + 1: w = w - 1
LOOP WHILE r < w
a(r, w) = r
FOR i = 1 TO p
FOR j = 1 TO p
PRINT a(i, j);
NEXT j
PRINT
NEXT i
END

3 楼

偶觉得你才看了五天,就能看懂这样的程序,已经很有天赋了。
想不到编程思路很正常啊,慢慢来。看看15天呢?25天之后,你就不会有这样的疑问了。

4 楼

可以这样作!
CLS
INPUT n
r = 1: p = 2 * n - 1
w = p
DIM a(p, p)
DO
FOR i = r TO w
a(i, r) = r
a(r, i) = r
a(i, w) = r
a(w, i) = r
NEXT i
r = r + 1: w = w - 1
LOOP WHILE r < w
a(r, w) = r
FOR i = 1 TO p
FOR j = 1 TO p
PRINT a(i, j);
NEXT j
PRINT
NEXT i
END
  hen bu cuo!

我来回复

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