我想把一个4行4列的数组,交换第1行与第3行位置,交换第2列与第4列的位置,怎么编写代码?

我想把一个4行4列的数组,交换第1行与第3行位置,交换第2列与第4列的位置,怎么编写代码?
下面是我编写的代码,我不能交换第2列与第4列的位置,哪里错了?
Option Base 1
Private Sub Form_Click()
Dim a(4, 4) As Integer
For i = 1 To 4
For j = 1 To 4
a(i, j) = Val(InputBox("请输入数据"))
Next j
Next i
For i = 1 To 4
For j = 1 To 4
Print a(i, j);
Next j
Print
Next i

For i = 1 To 4

For j = 1 To 4
m = a(1, j)
a(1, j) = a(3, j)
a(3, j) = m

Print a(i, j);
Next j
Print
Next i


For i = 1 To 4
For j = 1 To 4
n = a(i, 2)
a(i, 2) = a(i, 4)
a(i, 4) = n
Print a(i, j);
Next j
Print
Next i
End Sub
同时同样的二维数组我还想知道分别输出各行各列的和的代码.求解大神帮忙啊啊啊啊.
sunchy 1年前 已收到1个回答 举报

z_hl20dcuj0afc 花朵

共回答了24个问题采纳率:87.5% 举报

就是你在交换第一行和第三行的值时只需要一个循环语句就行了,我不会你写的这种编程语言,我照你这个来的话只需要向像下面这样就行了
For j = 1 To 4
m = a(1, j)
a(1, j) = a(3, j)
a(3, j) = m

Next j
第二列和第四列的值交换和这是差不多
For i = 1 To 4
n = a(i, 2)
a(i, 2) = a(i, 4)
a(i, 4) = n
Next i

接着就是各行各列的和:
hang_sum[4]={0,0,0,0};
lie_sum[4]={0,0,0,0};

for(int i=0;i

1年前 追问

8

sunchy 举报

你的那个求和的编程我不太懂,我没有碰到过能解释下嘛?而且我按照你的代码写,运行时说下标越界怎么回事?

举报 z_hl20dcuj0afc

先看求每行值的和:在i=0时,我求的就是第一行所有数的和,hang_sum[0]初始值为0,让后我通过一个循环 for(int j=0;j<4;j++) { hang_sum[i]+=a[i][j]; //这是每行值的和 } 这就求出了第一行所有数的和, hang_sum[i]+=a[i][j]; 这个语句的意思就是 hang_sum[i]=hang_sum[i]+a[i][j] 这样就把第一行所有数的和存放在hang_sum[0]中,后面几行就是一样这样 求列就是外面的循环是列,里面的循环是行,思想是一样的,这样明白么 还有啊你上面交换两个行或列的代码不要按我的写啊,我不会你用的那种编程语言,你只要看懂我表达的意思就行了 下面是我简单写的一段代码,它就能实现你要的那些功能 #include using namespace std; int main() { int a[4][4]; cout<<"输入一个二位数组:"; for(int i=0;i<4;i++) for(int j=0;j<4;j++) { cin>>a[i][j]; } int hang_sum[4]={0,0,0,0}; int lie_sum[4]={0,0,0,0}; for(int i=0;i<4;i++) for(int j=0;j<4;j++) { hang_sum[i]+=a[i][j]; //这是每行值的和 } for(int j=0;j<4;j++) for(int i=0;i<4;i++) { lie_sum[j]+=a[i][j]; //这是每列值的和 } for (int i=0;i<4;i++){ for(int j=0;j<4;j++) { cout<
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.034 s. - webmaster@yulucn.com