Linux下的C语言编程——指针实现矩阵转置
2016-10-10 22:24
567 查看
今天我刚刚学习了指针,对它掌握的并不是很了解。现在我们来写一个通过指针来实现矩阵转置的程序。原先在学习数组的时候,我曾经练习过通过数组来实现矩阵转置。
矩阵转置的核心是如何交换a[i][j]和a[j][i]的值。下面我先附上我原先写的代码,大家可以看一下。
这是我原先写的代码,现在我再附上我用指针实现数组转置的代码
两个程序很相似,下面我附上运行图
矩阵转置的核心是如何交换a[i][j]和a[j][i]的值。下面我先附上我原先写的代码,大家可以看一下。
#include<stdio.h> void transpos(int arr[4][4]) { int i; int j; int temp; for(i = 0; i < 4; i++) { for(j = i+1; j < 4; j++ ) { temp = arr[i][j]; arr[i][j] = arr[j][i]; arr[j][i] = temp; } } for(i = 0; i < 4; i++) { for(j = 0; j < 4; j++) { if(j%4 == 0) printf("\n"); printf("%4d",arr[i][j]); } } printf("\n"); } int main() { int arr[4][4]; int i; int j; printf("please input the arry!\n"); for(i = 0; i < 4; i++) { for(j = 0; j < 4; j++) { scanf("%d",&arr[i][j]); } } for(i = 0; i < 4; i++) for(j = 0; j < 4; j++) { if(j%4 == 0) printf("\n"); printf("%4d",arr[i][j]); } printf("\n"); transpos(arr); }
这是我原先写的代码,现在我再附上我用指针实现数组转置的代码
#include <stdio.h> void move(int *p) { int i; int j; int 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; } } int main() { int a[3][3]; int *p; int i; printf("please input the matrix!\n"); for(i = 0; i < 3; i++) { scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]); } for(i = 0; i < 3; i++) { printf("%d %d %d\n",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; }
两个程序很相似,下面我附上运行图
相关文章推荐
- linux网络编程:用C语言实现的聊天程序(异步通信)
- Linux下C语言实现UDP Socket编程
- 数据结构之---C语言实现矩阵的转置
- linux下,用c语言编程,实现从一个文件读取内容到另一个文件,可以在文件的不同位置修改文件内容,并保存。
- Linux下的C语言编程——链表实现队列操作
- c语言实现矩阵的三元组表示 + 矩阵的转置
- Linux下的C语言编程——sqlite3实现停车场管理系统
- Linux下的C语言编程——用链表实现栈操作
- Linux下的C语言编程——链表实现通讯录
- linux网络编程:用C语言实现的聊天程序(异步通信)
- C语言常用宏定义 __FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程)
- C语言编程—清空键盘缓冲区,Linux和Windows下完美实现(转)
- Linux下的C语言编程——系统调用read和write函数实现文件拷贝
- linux网络编程:用C语言实现的聊天程序(异步通信)
- 指针实现矩阵转置
- 使用c语言实现在linux下的openssl客户端和服务器端编程
- linux网络编程-服务器端线程池技术(C语言实现)
- Linux下的C语言编程——简单实现tcp客户端和服务器
- Linux下的C语言编程——文件存储链表实现的通讯录
- linux网络编程:用C语言实现的聊天程序(异步通信)