传值 引用 传地址调用
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;
}
}







