老鬼鱼杆:C语言的程序。。

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 03:24:09
用指针写出一段使3行3列数组行列置换的程序。。
希望大家能加上注解,谢谢大家了。。

我这里有一个可以让任意矩阵置换的程序:花了我一天多才弄好的。
你只要在预处理改变行列:M为行数、N为列数
#define M 4
#define N 3
void reverse(int *a,int m,int n)
{
int k[256]; /*this is the impartance,because the pointer
must have a space to initiate*/
int *b=k;
int i,j;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
*(b+j*m+i)=*(a+i*n+j);
for (i=0;i<m*n;i++)
*(a+i)=*(b+i);
}
main()
{
int i,j;
int a[M][N];
printf("\nplease input the matrix:");
for (i=0;i<M;i++)
for (j=0;j<N;j++)
scanf("%d",&a[i][j]);
printf("\nyour input is:\n");
for (i=0;i<M;i++)
{
printf("\n");for(j=0;j<N;j++) printf("%5d",a[i][j]);
}
printf("\nthe reversed matrix is:\n");
reverse(a,M,N);
for (i=0;i<M*N;i++)
{
if (i%M==0) printf("\n");
printf("%5d",*(&a[0][0]+i));
}
}

用指针指向二维数组就行