作者在 2010-05-24 19:14:12 发布以下内容
#include <stdio.h>
/*4、写一个函数,使给定的一个二维数组(3 x 3)转置,即行列互换。*/
void change(int *p);
main()
{
int x,y;
int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}};
for(x=0;x<3;x++)
{
for(y=0;y<3;y++)
{
printf("【%d】",arr[x][y]);
}
printf("\n");
}
printf("行列交换后:\n");
change(&arr[0][0]);
for(x=0;x<3;x++)
{
for(y=0;y<3;y++)
{
printf("【%d】",arr[x][y]);
}
printf("\n");
}
return 0;
}
void change(int *p)
{
int i,j,k,m;
for(i=0;i<3;i++)
{
k=*(p+i);
*(p+i)=*(p+6+i);
*(p+6+i)=k;
}
for(j=0;j<3;j++)
{
m=*(p+j*3);
*(p+j*3)=*(p+j*3+2);
*(p+j*3+2)=m;
}
}
/*4、写一个函数,使给定的一个二维数组(3 x 3)转置,即行列互换。*/
void change(int *p);
main()
{
int x,y;
int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}};
for(x=0;x<3;x++)
{
for(y=0;y<3;y++)
{
printf("【%d】",arr[x][y]);
}
printf("\n");
}
printf("行列交换后:\n");
change(&arr[0][0]);
for(x=0;x<3;x++)
{
for(y=0;y<3;y++)
{
printf("【%d】",arr[x][y]);
}
printf("\n");
}
return 0;
}
void change(int *p)
{
int i,j,k,m;
for(i=0;i<3;i++)
{
k=*(p+i);
*(p+i)=*(p+6+i);
*(p+6+i)=k;
}
for(j=0;j<3;j++)
{
m=*(p+j*3);
*(p+j*3)=*(p+j*3+2);
*(p+j*3+2)=m;
}
}