传值 引用 传地址调用
5*5矩阵, 输入数据, 交换m,n行的数据(n,m为输入的数字小于5) ,最后重新输出交换m和n行的矩阵. 但是下面的代码不能达到交换m,n行的目的.问题应该出在自定义函数fun上, 数据传入的只是形参,请大家帮看看
程序代码:
#include<stdio.h> int fun(int a[][5], int m, int n); main() { int i,j,m,n,t; int a[5][5]; printf("请输入5*5行列数据\n"); for(i=0; i<5; i++) { for(j=0; j<5; j++) { scanf("%d",&a[i][j]); } } printf("\n请输入m,n的值:"); scanf("%d%d", &m, &n); fun(a, m, n); for(i=0; i<5; i++,printf("\n")) { for(j=0; j<5; j++) { printf("%d",a[i][j]); } } } int fun(int a[][5] ,int m, int n) { int *p1[5] ; p1[0] = a[0]; int *p2; if(m-1>5|| n-1>5) { return 0; } else { p2 = p1[m-1]; p1[n-1]= p1[m-1]; p1[m-1]= p2; return 1; } }