修改如下,供参考:
#include <stdio.h>
int main()
{
int a[3][3],*p,i,j,temp;
p = a[0];
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
scanf("%d", p + 3 * i + j);
for (i = 0; i < 3; i++)
for (j = i; j < 3; j++)
{
temp = *(p + 3 *i + j);
*(p + 3 *i + j) = *(p + j * 3 + i);
*(p + j * 3 + i) = temp;
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
printf("%3d", *(p + i * 3 + j));
printf("\n");
}
return 0;
}
应该是循环次数太多,等长一点的时间就行
仅供参考,谢谢
#include<stdio.h>
int main(void)
{
int arr[3][3], arr0[3][3], (*p)[3] = arr;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
scanf("%d", &arr[i][j]);
}
puts("");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
printf("%d ", *(*(p + j) + i));
puts("");
}
return 0;
}