有关二维动态数组作为函数参数的有关问题,不知道哪错了,请高手帮忙解决
有关二维动态数组作为函数参数的问题,不知道哪错了,请高手帮忙解决
利用动态数组实现矩阵转置
#include <iostream.h>
void move(int ** p,int m,int n)
{
int i,j,k;
for(i=0; i <m; i++)
for (j=0; j <n; j++)
{
k = p[i][j];
p[i][j]= p[j][i];
p[j][i] = k;
}
cout < < "转置后的矩阵的为: " < < endl;
for(i=0; i <3; i++)
{
for (j=0; j <3; j++)
cout < < p[i][j] < < " ";
cout < < endl;
}
}
void main()
{
int i,j;
int **p=new int *[3];
for (i=0; i <3; i++)
p[i]=new int[3];
for(i=0; i <3; i++)
for (j=0; j <3; j++)
{
cout < < "第 " < < i+1 < < "行第 " < < j+1 < < "个元素为: ";
cin > > p[i][j];
}
for(i=0; i <3; i++)
{
for (j=0; j <3; j++)
cout < < p[i][j] < < " ";
cout < < endl;
}
move(p,3,3);
}
------解决方案--------------------
你这里要转换2此。。所以没变。。
for(i=0; i <m; i++)
for (j=0; j <n; j++)
{
k = p[i][j];
p[i][j]= p[j][i];
p[j][i] = k;
}
利用动态数组实现矩阵转置
#include <iostream.h>
void move(int ** p,int m,int n)
{
int i,j,k;
for(i=0; i <m; i++)
for (j=0; j <n; j++)
{
k = p[i][j];
p[i][j]= p[j][i];
p[j][i] = k;
}
cout < < "转置后的矩阵的为: " < < endl;
for(i=0; i <3; i++)
{
for (j=0; j <3; j++)
cout < < p[i][j] < < " ";
cout < < endl;
}
}
void main()
{
int i,j;
int **p=new int *[3];
for (i=0; i <3; i++)
p[i]=new int[3];
for(i=0; i <3; i++)
for (j=0; j <3; j++)
{
cout < < "第 " < < i+1 < < "行第 " < < j+1 < < "个元素为: ";
cin > > p[i][j];
}
for(i=0; i <3; i++)
{
for (j=0; j <3; j++)
cout < < p[i][j] < < " ";
cout < < endl;
}
move(p,3,3);
}
------解决方案--------------------
你这里要转换2此。。所以没变。。
for(i=0; i <m; i++)
for (j=0; j <n; j++)
{
k = p[i][j];
p[i][j]= p[j][i];
p[j][i] = k;
}