vfp魔术矩阵

FUNCTION jz()
 PARAMETER A
 
 CLEAR
 
 IF MOD(A,2)=0
  MESSAGEBOX('請輸入大于3的基數!',64,'溫馨提示')
  RETURN 0
 ENDIF
 IF A<3
  MESSAGEBOX('請輸入大于3的基數!',64,'溫馨提示')
  RETURN 0
 ENDIF
                                                             &&定義矩陣arr[a][a]            
 DECLARE ARR(A,A)                                            &&  產生遞增數列
 DECLARE TEMP(A*A)                                           &&B:依次向斜上角填充
 FOR I=1 TO A*A
  TEMP(I)=I
 NEXT
 ARR=0
 MID=INT(A/2)+1                               
 I=1
 J=MID
 ARR(I,J)=TEMP(1)                                    &&A:從中間開始
 FOR K=2 TO A*A
  X=I
  Y=J
  I=I-1                               &&C:?當行列出界時,填充到行列的末尾
  J=J-1
  IF I<1                                             
   I=A
  ENDIF
  IF J<1
   J=A
  ENDIF
  IF ARR(I,J)<>0                   &&D:當斜上角數字存在時,填充到原來數字的下方            
   I=X+1
   J=Y
  ENDIF

  ARR(I,J)=TEMP(K)
 NEXT

 

 FOR I=1 TO A                                                  &&E:輸出矩陣
  FOR J=1 TO A
   printprintARR(I,J)
  NEXT J
  print
 NEXT I

ENDFUNC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值