本文介绍: 接下来调用 move 函数传递给它整型数组 a地址,即 a 数组的首地址move 函数的目的是对输入矩阵进行转置操作,即行列互换。在 move数中使用两重循环遍历数组中的元素,并通过指针操作实现数组元素值的互换,从而实现矩阵转置然后通过循环结构scanf 函数,从标准输入读取用户输入的 3x3 矩阵的值,并存储到数组 a 中。最后程序输出转置后的矩阵,同样使用循环指针操作访问数组中的元素,并通过 printf 函数将每个元素的值输出到屏幕上。

分析

    在主函数 main 中,定义一个 3x3 的整型数组 a,并定义一个指向整型数组的指针 p然后通过循环结构scanf 函数,从标准输入读取用户输入的 3x3 矩阵的值,并存储到数组 a 中。
    接下来,调用 move 函数,传递给它整型数组 a地址,即 a 数组的首地址move 函数的目的是对输入的矩阵进行转置操作,即行列互换。在 move数中使用两重循环遍历数组中的元素,并通过指针操作实现数组元素值的互换,从而实现矩阵的转置
    最后程序输出转置后的矩阵,同样使用循环指针操作来访问数组中的元素,并通过 printf 函数将每个元素的值输出到屏幕上。

代码

#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;
	printf("input:n");
	for(i=0;i<3;i++)
	 for(j=0;j<3;j++)
	 scanf("%d",&amp;a[i][j]);
     move(p);
	 printf("output:n");
    for(i=0;i<3;i++)
     {
     	for(j=0;j<3;j++)
	    printf("%3d ",*(*(p+i)+j));
     	printf("n");
     } 
	 return 0; 
}

运行结果

原文地址:https://blog.csdn.net/m0_63002183/article/details/134626925

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_25600.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注