永发信息网

vb 生成幻方矩阵的题目,求指点!

答案:2  悬赏:50  手机版
解决时间 2021-11-12 00:18
vb 生成幻方矩阵的题目,求指点!
最佳答案
Option Explicit
Option Base 1


Private Sub Form_Click()
        Dim t As Integer, suji As Integer, r As Integer, c As Integer
        Dim i As Integer, j As Integer, i1 As Integer, j1 As Integer
        Dim a() As Integer
        t = InputBox("请输入一个奇数:")
                If t Mod 2 = 0 Then
                        MsgBox "您输入的不是奇数,请重新输入!"
                        Exit Sub
                End If
        ReDim a(t, t)
        suji = t ^ 2
        r = 1:  c = (t + 1) / 2: i = 1
        For i1 = 1 To t
          For j1 = 1 To t
            a(r, c) = i: i = i + 1
            If j1 = t Then Exit For
            r = r - 1: c = c + 1
            If r = 0 Then r = t
            If c > t Then c = 1
          Next j1
          r = r + 1
        Next i1
        For i1 = 1 To t
          For j1 = 1 To t
            Print Format(a(i1, j1), "@@@");
          Next j1
          Print
        Next i1
        Print
End Sub

全部回答
'以前根据规则写的,你这代码也不全啊
Function fc(n)
    Dim arr() As Long, i As Long, j As Long, m As Long, x As Long, y As Long
    ReDim arr(1 To n, 1 To n)
    If n < 1 Or n Mod 2 = 0 Then
        MsgBox "输入一个大于0的奇数!"
        Exit Function
    End If
    i = 1: j = Int(n / 2) + 1: arr(i, j) = 1 '规则1:第一行中间列为1
    For m = 2 To n ^ 2
        x = i: i = i - 1: If i = 0 Then i = n '规则2:行-1,如果行=0 则行置n
        y = j: j = j + 1: If j = n + 1 Then j = 1 '规则3:列+1,如果列=n+1,则列置1
        If arr(i, j) = 0 Then
            arr(i, j) = m
        Else '规则4:如果目标位有数值,则把数m写入当前行的下一行,列不变
            i = x + 1: j = y: arr(i, j) = m
        End If
    Next
    For i = 1 To n
        For j = 1 To n
            Print arr(i, j),
        Next
        Print
    Next
End Function
Private Sub Command1_Click()
    Cls
    fc 3
End Sub
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
抹茶奶盖怎么做
中国信合(牛坡山分社)地址好找么,我有些事要
呼啦圈3斤多算不算重啊
学生刚刚办的信用卡可以透支多少?
本科非法律专业去美国读JD回国就业前景如何?
鹅的骨头是空的 为什么?
已知 f(t)=t5+3t+9t2+6, 则 f(1)=__________
八王寺记录了我多少童年回忆
调教小护士2的基本信息
电器当关掉之后还插在有电的插座上费电吗?为
念佛时有人倒下什么情况
已知o+o+o+△=21,o+△+△+△=23,则o=(),△=()
雨燕后车牌下面是尾灯吗
二<2>班有男生32人.女生23人一起去划船.每条
天天象棋残局34期怎么过 第三十四期残局挑战
推荐资讯
我们班有个zz女,我看他不顺眼就去整他,然后
什么叫上门女婿啊
葡萄、葡桃,区别是?
假如一亩土地8万要买100平方米面积多少钱?有
梦幻西游力劈BB带什么套装好
为什么德国是四星
温州百合洗头城地址在什么地方,我要处理点事
LY-300型立式压面机怎样使用
拳无拳.意无意.是什么意思
求40篇文明习惯养成日记 50字/篇 记事类
微信公众平台自定义菜单子菜单内容全部完成后
为何安装了msvcp110.dll文件,打开游戏还是找
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?