指针转置
输入:
1 2 3 4
5 6 7 8
4 5 6 75 6 7 8
输出:
1 5 4 5
2 6 5 6
3 7 6 7
4 8 7 8
指针:
#include<stdio.h>
main()
{
int *p,a[4][4];
int i,j,t;
for(i=0; i<4; i++)
for(j=0; j<4; j++)
scanf("%d",&a[i][j]);//收到矩阵
p=&a[0][0];/p=*a;/p=&a;
for(i=0; i<4; i++)
{
for(j=0; j<=i; j++)
{
t=*(p+i*4+j);
*(p+i*4+j)=*(p+j*4+i);
*(p+j*4+i)=t;
}//交换
}
for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
printf("%d ",*(p+i*4+j));
printf("\n");//输出,别忘记回车单独写
}
}
数组:
#include<stdio.h>
main()
{
int *p,a[4][4];
int i,j,t;
for(i=0; i<4; i++)
for(j=0; j<4; j++)
scanf("%d",&a[i][j]);
for(i=0; i<4; i++)
{
for(j=0; j<=i; j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
printf("%d ",a[i][j]);
printf("\n");
}
}