首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

数组转置的有关问题

2012-02-26 
数组转置的问题C/C++ code#include iostream#includecstdlibusing namespace stdvoid main(int argc,

数组转置的问题

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的来转下就好理解了

热点排行