qq_45735316 2020-04-08 10:59 采纳率: 94.1%
浏览 1093
已采纳

二维数组列数由用户输入,该怎样在定义函数时传入二维数组作为函数参数?

图片说明
编写一个矩阵转置函数,矩阵的行数和列数在程序中由用户输入

#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

void  matrixTranspose(int (*a)[cols],int rows,int cols)    //矩阵转置函数
/*二维数组作为函数参数必须将列数写入形式参数中,
二维数组的作为函数参数的传入方法:
1.int sum_arr(int a[N][N],int size)size的值是行数,二维数组可以看作是
元素为数组的一维数组
example:C++.P207 
2.int sum_arr(int (*a)[cols],int size)
两种方法函数中调用都要用a[i][j] 
数组的长度也要作为参数传入,不在函数的内部定义大小*/ 
{
    int b[N][N]={0};
    int i=0,j=0;
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            b[j][i]=a[i][j];
        }
    }
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            a[i][j]=b[i][j];
        }
    }
    cout<<"转置后的矩阵"<<endl; 
    for(i=0;i<rows;i++)
    {
        for(j=0;j<cols;j++)
        {
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
 }  
int main(int argc, char** argv) {
    int rows=0,cols=0;
    int i=0,j=0;
    cout<<"请输入行数和列数"<<endl;
    cin>>rows>>cols;
    int a[rows][cols]={0};
    cout<<"请输入矩阵元素"<<endl; 
    for(i=0;i<rows;i++)
    {
        for(j=0;j<cols;j++)
        {
            cin>>a[i][j];
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
     } 
    matrixTranspose(a,rows,cols);
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 小学狗喵喵叫 2020-04-08 11:53
    关注
    void matrixTranspose(int **a,int n)
    {
        int *b = new int[n];
        for (int i = 0; i < n; i++)
        {
            b[i] = (int)a[i];
        }
        for (int i = 0; i < n; i++)
        {
            a[i] = (int*)b[n - i - 1];
        }
        delete[]b;
    }
    
    int main()
    {
    ...
    matrixTranspose((int**)a3, rows*cols);
    ...
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
  • ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)
  • ¥15 yolov9的训练时间
  • ¥15 二叉树遍历没有报错但无法正常运行
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错
  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动