读书人

数组转置的有关问题

发布时间: 2012-02-26 20:19:45 作者: rapoo

数组转置的问题

C/C++ code
#include <iostream>#include<cstdlib>using namespace std;void main(int argc,char*argv[]){    int a[4][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,14,15}};    int i=0,j=0,tmp=0;    for(i=0;i<4;i++)    {        for(;j<4;j++)        {          tmp=a[i][j];          a[i][j]=a[j][i];          a[j][i]=tmp;        }       j=i+1;     }    for(i=0;i<4;i++)     {        for(j=0;j<4;j++)        {            cout<<a[i][j]<<" ";        }        cout<<endl;     }}


实现一个4*4的数组的转置为什么第二个for处不用加j=0,而是在后面用j=i+1.

[解决办法]
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15

转置时只需要将上半角和下半角的数据对换就行了,所以每一行,只需要将该行以后的数字进行转置,所以j不是从0开始,而是从j=i+1开始。
[解决办法]
探讨
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15

转置时只需要将上半角和下半角的数据对换就行了,所以每一行,只需要将该行以后的数字进行转置,所以j不是从0开始,而是从j=i+1开始。

[解决办法]
你画一个3*3的来转下就好理解了

读书人网 >C++

热点推荐