现在的位置: 首页 > 综合 > 正文

09.11.12学习日记

2018年10月25日 ⁄ 综合 ⁄ 共 556字 ⁄ 字号 评论关闭

 刚做了一道教程题目 原题:编写一个矩阵转置的函数,矩阵的行,列在程序中由用户输入。原代码:

#include<iostream>
using namespace std;
int **T(int r,int c,int **b)
{int i,j,r1,c1;
int **a1=new int*[c];
for(i=0;i<c;i++)
a1[i]=new int[r];
 for(i=0;i<c;i++)
  for(j=0;j<r;j++)
   a1[i][j]=b[j][i];
         return a1;}
int main()
{int i,j,R,C,**c;
 cin>>R>>C;
 int **a=new int*[R];
 for(i=0;i<R;i++)
  a[i]=new int[C];
for(i=0;i<R;i++)
for(j=0;j<C;j++)
cin>>a[i][j];
c=T(R,C,a);
for(i=0;i<C;i++)
{for(j=0;j<R;j++)
cout<<*(*(c+i)+j)<<" ";
cout<<endl; }
return 0;}

其实这道题目的算法不难,关键是二维数组作为参数之间的传递,刚开始就是不知道如何传递琢磨了不少时间,最后还是成功了,关键是传递过程中类型与维数的匹配。还有动态二维数组的创建,以后复习可供参考。

抱歉!评论已关闭.