首页 > 试题广场 >

写一函数,将一个3×3的整型矩阵转置。要求用指针方法处理。

[问答题]
写一函数,将一个3×3的整型矩阵转置。要求用指针方法处理。
推荐

#include<stdio.h>

int main()

{void move(int *pointer);

int a[3][3],*p,i;

printf("input matrix:\n");

for(i=0;i<3;i++)

scarnf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);

p=&a[0][0];

move(p);

printf("Now,matrix:\n");

for(i=0;i<3;i++)

printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);

return 0;

}


void move(int *pointer)

{int i,j,t;

for(i=0;i<3;i++)

for(j=i;j<3;j++)

{t=*(pointer+3*i+j);

*(pointer+3*i+j)=*(pointer+3*j+i);

*(pointer+3*j+i)=t;

}

}


发表于 2018-03-25 10:32:17 回复(0)
更多回答
int main()
{
	void tran(int* arr);
	int arr[3][3];
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			scanf("%d", *(arr + i) + j);
		}
	}
	tran(*arr);
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf("%d ", *(*(arr + i) + j));
		}
	}
	return 0;
}
void tran(int* p)
{ 
	int i, j, t;
	for (i = 0; i < 3; i++)
	{
		for (j = i; j < 3; j++)
		{
			t = *(p + 3 * i + j);
			*(p+ 3 * i + j) = *(p + 3 * j + i);
			*(p + 3 * j + i) = t;
		}
	}
}

编辑于 2023-12-16 15:17:57 回复(0)