将一个3×3的矩阵转置,用一函数实现. 在主函数中用scanf函数输入以下矩阵元素: 1 3 5 7 9 11 13 15 19将数组名作为函数实参,再执行函数的过程中实现矩阵转置,函数调用结
将一个3×3的矩阵转置,用一函数实现. 在主函数中用scanf函数输入以下矩阵元素: 1 3 5 7 9 11 13 15 19将数组名作为函数实参,再执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。#includevoid main(){ int a[3][3],*p,i,j; void trans(int *pointer); printf("请按行输入矩阵: \n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]);/*此处填写代码段,接收矩阵中每行元素的值*/ p=&a[0][0];/*此处填写语句,将指针p指向二维数组的首地址*/ trans(p);/*此处填写语句,调用函数trans,p做实参,以执行矩阵的转置 */; printf("转置后的矩阵: \n"); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%d ",*(p+3*j+i));/*此处填写代码,输出矩阵中各元素的值*/ printf("\n"); } }void trans(int *pointer){ int i,j,t; for(i=0;i<3;i++) for(j=0;j<3;j++) { t=*(pointer+3*i+j); *(pointer+3*i+j)=*(pointer+3*j+i); *(pointer+3*j+i)=t; }}上述程序无法正常运行~该如何修改~?
展开
全部