#include <stdio.h>
void InputMatrix(int (*a)[4],int ,int );
void OutputMatrix(int (*b)[3],int ,int );
void MatrixTranspose(int (*a)[4], int (*b)[3]);
int main()
{
int a[3][4],b[4][3];
printf("Please input 3*4 matrix:\n");
InputMatrix(a,3,4);
MatrixTranspose(a,b);
printf("The transposex Matrix is:\n");
OutputMatrix(b,4,3);
getchar();
return 0;
}
void InputMatrix(int (*a)[4],int n,int m)
{
/*输入m*n阶矩阵*/
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",*(a+i)+j);
}
}
}
void MatrixTranspose(int (*a)[4],int (*b)[3])
{
/*矩阵的转置运算*/
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
b[j][i]=a[i][j];
}
}
}
void OutputMatrix(int (*b)[3],int n,int m)
{
/*输出n*m阶矩阵*/
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d ",*(*(b+i)+j));
}
printf("\n");
}
}
这部分要注意的是:针对for循环,循环变量要实现定义,否则就会出现问题。error C2143: syntax error : missing ';' before 'type'.
还有一点要注意:就是在代码前面声明语句写的函数名,要和后面函数实现的函数名一致,最好用复制的方法进行。我有一个函数名没有完全对应上,就出现问题:
error LNK2001: unresolved external symbol _InputMatrix
Debug/矩阵转置.exe : fatal error LNK1120: 1 unresolved externals
将所有函数名都重新复制一边就好了。
1237

被折叠的 条评论
为什么被折叠?



