注册 登录
编程论坛 C++教室

数组转置问题~

xlj3105098 发布于 2011-11-12 13:27, 567 次点击
#include<iostream>
#include<iomanip>
using namespace std;
void T(int **a);
int main(void)
{
    int A[5][5];
    for(int i=0;i<5;i++)
        for(int j=0;j<5;j++)
            A[i][j]=rand();
    for(int i=0;i<5;i++)
    {
        for(int j=0;j<5;j++)
            cout<<setw(8)<<A[i][j];
        cout<<endl;
    }
    T((int**)A);
    cout<<endl;
    for(int i=0;i<5;i++)
    {
        for(int j=0;j<5;j++)
            cout<<setw(8)<<A[i][j];
        cout<<endl;
    }
    return 0;
}

void T(int **a)
{
    for(int i=0;i<5;i++)
        for(int j=i+1;j<5;j++)
        {
            int temp=*(*(a+i)+j);
            *(*(a+i)+j)=*(*(a+j)+i);
            *(*(a+j)+i)=temp;
        }
}


转置的结果无法输出~请各位高手帮忙看下~
3 回复
#2
冰huo两重天2011-11-12 15:42
转置函数的形参错了,应该是void T(int a[][5])
#3
xlj31050982011-11-12 18:20
这是什么原因呢?
#4
xlj31050982011-11-13 00:49
回复 2楼 冰huo两重天
高手能否解释一下啊~
1