#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
将所有函数名都重新复制一边就好了。
矩阵转置-编程心得
最新推荐文章于 2021-11-09 22:31:31 发布