指针实现写一个函数,将一个3×3的整数矩阵转置

任务描述

本关任务: 指针实现写一个函数,将一个3×3的整数矩阵转置。

相关知识

为了完成本关任务,你需要掌握: 1.矩阵的转置算法; 2.二维数组的定义; 3.二维数组的指针; 4.函数的定义、调用及参数传递。

矩阵的转置算法

见第5章编程习题4

二维数组的定义

见教材

二维数组的指针

见教材

函数的定义、调用及参数传递

见教材

编程要求

1.编写函数move(int *point),其中形参指针point指向二维数组a[0][0],实现二维数组的转置; 2.编写主函数,完成: (1)定义和初始化好二维数组; (2)调用move函数实现矩阵的转置; (3)显示转置的后的二维矩阵; (4)根据提示,在编辑器补充代码,实现本关功能。

测试说明

原始矩阵为:

1 2 3

4 5 6

7 8 9

转置后矩阵为:

1 4 7

2 5 8

3 6 9

#include<stdio.h>
void move(int (*p)[3])
{
	int i,j,temp;
    for(i=0;i<3;i++)
	 for(j=0;j<i;j++)
	 {
 		temp=*(*(p+i)+j);
 		*(*(p+i)+j)=*(*(p+j)+i);
 		*(*(p+j)+i)=temp;
 	 }
}
int main()
{
	int a[3][3];
	int (*p)[3],i,j,temp;
	p=a;
	for(i=0;i<3;i++)
	 for(j=0;j<3;j++)
	 scanf("%d",&a[i][j]);
     move(p);
    for(i=0;i<3;i++)
     {
     	for(j=0;j<3;j++)
	    printf("%5d ",*(*(p+i)+j));
     	printf("\n");
     } 
	 return 0; 
}

Guess you like

Origin blog.csdn.net/qq_46069852/article/details/121277860