vb中的矩阵对角线输出

Option Base 1Private Sub Command1_Click() Dim a(4, 4) As Integer For i = 1 To 4 For j = 1 To 4 a(i, j) = Val(InputBox("请输入数字")) If i = j Or i + j = 5 Then Print Tab(3 * j); Print a(i, j); End If Next j Next iEnd Subtab不是同行输出吗?为什么它是按照矩阵的对角线输出的

程序里没有换行输出的 print啊

关键是这个判断If i = j Or i + j = 5,如果没有这个判断,就会输出一个4*4的矩阵了,有了这个判断,就过滤了一部分,只剩下对角线了。个人理解,对不对还得你自己试,呵呵。追问

就是他为什么不是同行输出呢

追答

百思不得其解,试验了下,发现是两层FOR循环的问题,如果用一层FOR循环,就不会分行。至于为什么,VB里没说,估计是和FOR的内部机制有关。至于怎么解决,很简单,如果不想分行,就声明个字符串变量,把要输出的东东都转成字符串放到变量里,最后一起输出就成了。我都是这么干的,所以从没发现你的这个问题。

追问

谢谢,我对tab函数不是很清楚
我把tab删掉就是同行输出了

追答

又试了试,原来不是FOR循环的问题,是定位的问题,tab函数是定位输出的位置的,当内层的FOR循环完成一次循环后,下一次循环中tab函数要定位于第3个位置,这时print已经定位于12这个位置了,3小于12,所以print会自己跳到下一行再定位于3这个位置,你可以不用循环,用tab分别定位几个数试试,比如2、4、6、5、3,每个后面都跟一个print,然后你就会看到在定位于5和定位于3时会换行。

温馨提示:内容为网友见解,仅供参考
无其他回答

vb中的矩阵对角线输出
关键是这个判断If i = j Or i + j = 5,如果没有这个判断,就会输出一个4*4的矩阵了,有了这个判断,就过滤了一部分,只剩下对角线了。个人理解,对不对还得你自己试,呵呵。

VB高手用VB编写下面数据矩阵对角线等
Next j: Print: Next i Print "主对角线元素";For i = 1 To 4: Print a(i, i);: Next i: Print Print "副对角线元素";For i = 1 To 4: Print a(5 - i, i);: Next i: Print Print "各行之和";For i = 1 To 4: Sum = 0: For j = 1 To 4 Sum = Sum + a(...

VB求矩阵对角线的值,为什么一直是0
2x=5,y-1=6,所以x=5\/2;y=7 答:方程组2ax+b(y-1)=c 2dx+e(y-1)=f的解为x=5\/2,y=7。

VB编写程序,建立并输出一个10*10的矩阵,该矩阵两条对角线元素为1,其 ...
Private Sub Form_Click()Dim a(1 To 10, 1 To 10) As Integer For i = 1 To 10 For j = 1 To 10 a(i, j) = 0 If i = j Then a(i, j) = 1 If i + j = 11 Then a(i, j) = 1 Print a(i, j); " ";Next j Print Next i End Sub ...

vb矩阵对角线求和
vb矩阵对角线求和?一个 n阶方阵,vb矩阵对角线采用n×n(n行n列)的二维数组来存储:其主对角线上的元素的下标,满足:行号 = 列号 其副对角线上的元素的下标,满足:行号 + 列号 = n + 1 VB代码实现:(以n = 5为例,并且数组为d,并已经赋值)dim n as integer dim S1 As Integer '...

...建立并输出一个10*10的矩阵,该矩阵对角线元素为1,其余元素均为0_百 ...
private sub command_click()dim a(10,10)for i=1 to 10 for j=1 to 10 a(i,j)=0 next j,i for i=1 to 10 a(i,i)=1 a(i,11-i)=1 next i for i=1 to 10 for j=1 to 10 print a(i,j);next j print next i end sub ...

...建立并输出一个10×10的矩阵,该矩阵对角线元素为1,其余元素均为0...
很简单的二维数组问题 先声明一个0-10,0-10的数组 然后 for i=1 to 10 do for j=1 to 10 do if i=j then a(i,j)=1 else a(i,j)=0 应为我不是搞vb的 所以只能提供思路 就是这样 剩下的自己完善 赋值完了输出 别告诉我你不会输出 二维数组的输出也是双层循环 不过在内层循环...

VB程序题,求一已知4×4矩阵的主对角线上各元素的和。求运行程序_百度知 ...
4,4) As Integer Dim i As Integer Dim j As Integer Dim n As Integer n = 0 Print "矩阵:"Randomize For i=0 to 3 For j=0 to 3 a(i,j)=Int(RND * (9))Print a(i,j);If i=j Then n = n + a(i,j)Next j Print ""Next i Print "对角线元素和:" & str(n)

用VB编写一个求4阶矩阵的主副对角线和周边元素之和。急求代码!感激不尽...
Next Print Next For i = 1 To 4 sum1 = sum1 + a(i, i) + a(5 - i, i) For j = 1 To 4 If i = 1 Or i = 4 Or j = 1 Or j = 4 Then sum2 = sum2 + a(i, j) End If Next Next Print Print sum1 + sum2End Sub ...

vb中随机显示一个5*5的矩阵,然后统计对角线上偶数的个数
j) = Int(Rnd * 100)Print Tab(j * 5); a(i, j);Next j Print Next i For i = 1 To 5 If a(i, i) Mod 2 = 0 Then s = s + 1 If i <> 3 And a(i, 6 - i) Mod 2 = 0 Then s = s + 1 Next i Print Print "对角线上偶数的个数为:"; s End Sub ...

相似回答