如题所述
Dim a(1 To 3, 1 To 3)
Dim max, min, hx, lx, hn, ln
For i = 1 To 3
For j = 1 To 3
a(i, j) = Val(InputBox("请输入数字!"))
Next j
Next i
min = a(1, 1)
max = min
hx = 1: lx = 1
hn = 1: ln = 1
For i = 1 To 3
For j = 1 To 3
If max < a(i, j) Then max = a(i, j): hx = i: lx = j
If min > a(i, j) Then min = a(i, j): hn = i: ln = j
Print a(i, j);
Next j
Next i
Print "最大值位置:"; hx, lx
Print "最小值位置:"; hn, ln
End Sub追问
我主要是想知道
输入一个3*3矩阵(设该矩阵中没有相同的数)
怎么做的。
能帮我写一下吗,谢谢
Private Sub Command1_Click()
Dim a(1 To 3, 1 To 3) As Integer
For i = 1 To 3
For j = 1 To 3
a(i, j) = Val(InputBox("请输入第(" + Str(i) + "," + Str(j) + ")数字!"))
For k = 1 To 3
For l = 1 To 3
If i = k And j = l Then
Exit For
Else
If a(i, j) = a(k, l) Then
j = j - 1
MsgBox "重复,请重新输入该数!"
Exit For
End If
End If
Next l
If l <= 3 Then Exit For
Next k
Next j
Next i
For i = 1 To 3
For j = 1 To 3
Print a(i, j);
Next j
Print
Next i
End Sub
#include<stdio.h>
struct number //定义两个结构体min,max,分别记录min和max的值、行号、列号
{
int num;
int line;
int row;
}min,max;
int main()
{
int i,j;
int a[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
min.num=a[0][0]; //最初需注意将min和max的行列号赋初值
min.line=0;
min.row=0;
max.num=a[0][0];
max.line=0;
max.row=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(min.num>a[i][j]) //遍历数组,比较其值
{
min.num=a[i][j];
min.line=i;
min.row=j;
}
if(max.num<a[i][j])
{
max.num=a[i][j];
max.line=i;
max.row=j;
}
}
printf("最小值为:%d,其行列号分别为:%d,%d\n",min.num,min.line,min.row);
printf("最大值为:%d,其行列号分别为:%d,%d\n",max.num,max.line,max.row);
}