VB6.0标准下EXE输出魔方阵

2025-03-04 09:16:15
推荐回答(2个)
回答1:

用VB在标准EXE下给你做好了, ,点一次按钮显示一个魔方矩阵代码如下Dim n As Long
Function MagicMatrix() As String
Dim S() As Long
Dim x As Long, y As LongDim i As LongReDim S(1 To n, 1 To n) As Long
x = (n + 1) / 2
y = 1
S(x, y) = 1
For i = 2 To n ^ 2
If x = n And y = 1 Then
y = y + 1
ElseIf x = n Then
x = 1
y = y - 1
ElseIf y = 1 Then
x = x + 1
y = n
ElseIf S(x + 1, y - 1) <> 0 Then
y = y + 1
Else
x = x + 1
y = y - 1
End If
S(x, y) = i
Next
For i = 1 To n
For j = 1 To n
MagicMatrix = MagicMatrix & S(j, i) & " " Next
MagicMatrix = MagicMatrix & vbCrLf
NextEnd Function Private Sub Command1_Click()
Dim p As Integer
p = 1
Do While (p = 1)
n = InputBox("Please input 奇数n")
If ((n <> 0) And (n <= 15) And (n Mod 2 <> 0)) Then

p = 0
Else
MsgBox "输入有误,请重新输入"
End If
Loop
Text1.Text = MagicMatrix
End Sub如果你想要生成的exe可执行文件,上QQ我传给你吧,我的QQ:466698654

回答2:

奇数阶幻方:

#include

#define N 7

int main()
{
int a[N][N] = { 0 };
int i, j, x, y, m, n;
a[x=0][y=N/2] = 1;
for ( i = 2; i <= N*N; ++i ) {
m = x-1; n = y+1;
if ( x == 0 ) m = N-1;
if ( y == N-1 ) n = 0;
if ( a[m][n] != 0 ) m = x+1, n = y;
a[x=m][y=n] = i;
}
for ( i = 0; i < N; ++i ) {
for ( j = 0; j < N; ++j ) {
printf( "%-2d ", a[i][j] );
}
putchar( '\n' );
}
}