注册 登录
编程论坛 VC++/MFC

帮我看看有什么问题,始终无法得到想要的结果!!!!!

闭眼到天黑 发布于 2011-03-07 12:50, 396 次点击
程序代码:
#include<iostream>
using namespace std;
class tran
{
private:
    int a;
    int b;
public:
    int matrix[100][100];
    tran(int c,int d):a(c),b(d)
    {
        if(a==0||b==0)
            cout<<"NO"<<endl;
        if(a>100||b>100)
            cout<<"no"<<endl;
    }
    int in()
    {
        for(int i=0;i!=a;++i)
        {
            for(int j=0;j!=b;++j)
            {
                int n;
                cin>>n;
                matrix[i][j]=n;
            }
        }
        return 0;
    }
    int change()
    {
            for(int i=0;i!=a;++i)
        {
            for(int j=0;j!=b;++j)
            {
                int temp=0;
                temp=matrix[j][i];
                matrix[j][i]=matrix[i][j];
                matrix[i][j]=temp;
            }
        }
            return 0;
    }
    int print2()
    {
            for(int i=0;i!=b;++i)
        {
            for(int j=0;j!=a;++j)
            {
                cout<<matrix[j][i]<<" ";
            }
            cout<<endl;
        }
            return 0;
    }
    int print()
    {
            for(int i=0;i!=a;++i)
        {
            for(int j=0;j!=b;++j)
            {
                cout<<matrix[j][i]<<" ";
            }
            cout<<endl;
        }
            return 0;
    }
};
int main()
{
    int c,d;
    cout<<"请输入矩阵的行宽:"<<endl;
    cin>>c;
    cout<<"请输入矩阵的高:"<<endl;
    cin>>d;
    tran f(c,d);
    cout<<"请输入"<<c<<"*"<<d<<"个元素:"<<endl;
    f.in();
    f.print2();
    f.change();
    cout<<"转置后的矩阵:"<<endl;
    f.print();
    return 0;
}
一个矩阵转置的程序无法得到想要的结果,各位帮忙看一下!
2 回复
#2
qq10235692232011-03-07 14:30
#include<iostream>
using namespace std;
class tran
{
private:
    int a;
    int b;
public:
    int matrix[100][100];
    tran(int c,int d)
    {
        if(a==0||b==0)
            cout<<"NO"<<endl;
        if(a>100||b>100)
            cout<<"no"<<endl;
    }
    int in()
    {
        for(int i=0;i!=a;++i)
        {
            for(int j=0;j!=b;++j)
            {
                int n;
                cin>>n;
                matrix[i][j]=n;
            }
        }
        return 0;
    }
    int change()
    {
            for(int i=0;i!=a;++i)
        {
            for(int j=0;j!=b;++j)
            {
                int temp=0;
                temp=matrix[j][i];
                matrix[j][i]=matrix[i][j];
                matrix[i][j]=temp;
            }
        }
            return 0;
    }
    int print2()
    {
            for(int i=0;i!=b;++i)
        {
            for(int j=0;j!=a;++j)
            {
                cout<<matrix[i][j]<<" ";
            }
            cout<<endl;
        }
            return 0;
    }
    int print()
    {
            for(int i=0;i!=a;++i)
        {
            for(int j=0;j!=b;++j)
            {
               cout<<matrix[i][j]<<" ";
            }
            cout<<endl;
        }
            return 0;
    }
};
int main()
{
    int c,d;
    cout<<"请输入矩阵的行宽:"<<endl;
    cin>>c;
    cout<<"请输入矩阵的高:"<<endl;
    cin>>d;
    tran f(c,d);
    cout<<"请输入"<<c<<"*"<<d<<"个元素:"<<endl;
    f.in();
    f.print2();
    f.change();
    cout<<"转置后的矩阵:"<<endl;
    f.print();
    return 0;
}
#3
闭眼到天黑2011-03-07 18:32
回复 2楼 qq1023569223
还是不对,我是想在二维数组中直接保存结果而不仅仅是打印出来,问题在于N*N那部分无法转置[local]1[/local]
1