回 帖 发 新 帖 刷新版面

主题:请教"咬尾巴"移位

大家知道,用以下代码
CLEAR 
PUBLIC AA(1,6)
FOR I=1 TO 6
AA(1,I)=I*I
?? AA(1,I)
ENDFOR 
可以显示结果:
1    4    9    16    25    36
现在想用代码(循环语句)将上面这一行"咬尾巴"的移位成以下形式
4    9    16    25    36    1
9    16    25    36    1    4
16    25    36    1    4    9
25    36    1    4    9    16
36    1    4    9    16    25
谢谢!

回复列表 (共6个回复)

沙发

CLEAR 
PUBLIC AA(6,6)
FOR i=1 to 5
    FOR j=1+i to 6+i
        n=j-int(j*0.1+0.3)*6
        AA(i,j)=n*n
        ?? AA(i,j)
    NEXT
    ?
NEXT

板凳

首先谢谢qjbzjp老师,但还要提两个问题
一是" n=j-int(j*0.1+0.3)*6"这行中的0.1和0.3两个数是依据什么决定的?
二是当原来的一行不只是"1    4    9    16    25    36"这六个数,而是一般的如
"1  4  9  16  25 .... i*i"时那代码又该如何呢?谢谢

3 楼

一、满足j<7时n=j, 每当j=7时,n=1
二、只能依要求来灵活改变,例如"1    4    9    16    25    36   49":
PUBLIC AA(8,7)
FOR i=1 to 7
    FOR j=i to 6+i
        n=j-int(j*0.1+0.2)*7
        AA(i,j)=n*n
        ?? AA(i,j)
    NEXT
    ?
NEXT

4 楼


哦,这我想还达不到任意几个"1  4  9  16  25 .... i*i"的要求,谢谢指导

5 楼

PUBLIC abc(num,num)  &&定义数组并赋值
    FOR a = 1 to num
        FOR b = 1 to num
            abc(a,b) = (a-1)*num+b
            ??abc(a,b)
        ENDFOR
        ?
    ENDFOR
***********咬行------
FOR x = 1 to num
    FOR y = 1 to x -1
        u = abc(x,1)
        FOR o = 1 to num-1
            abc(x,o) = abc(x,o+1)
        ENDFOR 
        abc(x,num)= u    
    ENDFOR
ENDFOR 
*---显示数据
FOR w = 1 to num
    ?    
    FOR q = 1 to num
        ??abc(w,q)
    ENDFOR
ENDFOR 

?
***********咬列
FOR y = 1 to num
    FOR x = 1 to y -1
        u = abc(1,y)
        FOR o = 1 to num-1
            abc(o,y) = abc(o+1,y)
        ENDFOR 
        abc(num,y)= u    
    ENDFOR
ENDFOR 
*---显示数据
FOR w = 1 to num
    ?    
    FOR q = 1 to num
        ??abc(w,q)
    ENDFOR
ENDFOR 

6 楼

我没有用你们的什么大了小了的
第N行循环换位N-1次,就ok了

我来回复

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