C语言矩阵转置
C语言 矩阵 转置
2023-06-13 09:11:55 时间
本实例是利用数组解决线性代数中的矩阵转置问题。
设有一矩阵为 m n 阶(即 m 行 n 列),第 i 行 j 列的元素是 a(i,j),需要将该矩阵转置为 n m 阶的矩阵,使其中元素满足 b(j,i)=a(i,j)。
由数学知识可知,将第一个矩阵的所有元素绕着一条从第一行第一列出发的右下角 45 的射线做镜面反转,即可得到该矩阵的转置。
#include stdio.h int main() int i,j,i1,j1,a[101][101],b[101][101]; printf( please input the number of rows( =100)/n scanf( %d , i1); printf( please input the number of columns( =100)/n scanf( %d , j1); printf( please input the element/n for(i=0;i i++) for(j=0;j j++) scanf( %d , a[i][j]); printf( array a:/n for(i=0;i i++) for(j=0;j j++) printf( /t%d ,a[i][j]); printf( /n for(i=0;i i++) for(j=0;j j++) b[j][i]=a[i][j]; printf( array b:/n for(i=0;i i++) for(j=0;j j++) printf( /t%d ,b[i][j]); printf( /n return 0; }调试运行结果
在本实例中,需要自定义第一个数组(程序中的数组即代表数学中的矩阵),也就是需要转置运算的数组 A,定义分三个步骤进行:第一步,定义该数组的行数;第二步,定义该数组的列数;第三步,定义该数组的元素,然后被定义的数组经过程序的运算,输出转置后的数组 B。程序的运行结果如下所示:
please input the number of rows( =100)
3
please input the number of columns( =100)
4
please input the element
1 2 3 4 5 6 7 8 9 10 11 12
array a:
1 2 3 4
5 6 7 8
9 10 11 12
array b:
1 5 9
2 6 10
3 7 11
4 8 12
在本实例中,主要运用了二维数组,二维数组的使用说明如下:
① 二维数组的第一个下标表示行数,第二个下标表示列数,每个下标都是从 0 开始;
② 类型说明符、数组名和常量表达式的意义与一维数组相同;
③ 二维数组的元素在内存中是 按行存放 ,即在内存中先顺序存放第一行的元素,再存放第二行的元素,以此类推;
④ 可以把二维数组看作一种特殊的一维数组,其特殊之处在于它的每一个元素又是一维数组。
21789.html
相关文章
- 蛇行矩阵 蛇形填数 回形取数 蛇行系类(C语言详解+图解)
- C语言编写一个程序,输入10个整数,统计并输出其中正数,负数和零的个数。
- 局部静态变量的定义_C语言强制转换数据类型
- C语言复习_进制
- C语言结构体定义
- C语言与Linux系统编程指南(clinux教材)
- 文件Linux C语言中读取配置文件的方法研究(linux c 读取配置)
- Linux下C语言环境搭建实战简介(linux下c 环境配置)
- 使用C语言操作MySQL过程(c mysql 过程)
- C语言操作MySQL轻松获取列名(c mysql获取列名)
- MySQL中使用C语言插入数据实践(c mysql 插入数据)
- 过程C语言调用Oracle存储过程实现高效数据访问(c 调用oracle存储)
- C语言中处理Oracle中的空字符串(c oracle空字符串)
- 基于C语言中段错误的问题详解
- C语言顺序表实现代码排错