以下为展示“矩阵行列和相等”的简单示例:
1.用c语言实现的版本
#include <stdio.h> #include <math.h> void main() { int a[16][16],i,j,n,k; printf("Please input n(1~15,it must be odd.): "); scanf("%d",&n); while(!(n>=1&&n<=15) || n%2==0) { printf("The number is invalid.Please insert again:"); scanf("%d",&n); } //初始化数组 for(i=0; i<=n; ++i) { for(j=0; j<=n; ++j) { a[i][j]=0; } } j = n/2 + 1; a[1][j] = 1; i = 1; for(k=2; k<=n*n; ++k) { i = i - 1; j = j + 1; if(i==0 && j==n+1) //行列都越界 { i = i+2; j = j-1; } else { if(i==0) //行越界 { i = n; } if(j==n+1) //列越界 { j = 1; } } if(a[i][j]==0) //如果里面没数字 { a[i][j] = k; } else //得到新的数值 { i = i + 2; j = j - 1; a[i][j] = k; } } for(i=1; i<=n; ++i) { for(j=1; j<=n; ++j) { printf("%3d", a[i][j]); } printf("\n"); } }
2.用C++语言实现的版本
#include <iostream> #include <math.h> void main() { int a[16][16],i,j,n,k; std::cout<<"Please input n(1~15,it must be odd.): "; std::cin>>n; while(!(n>=1&&n<=15) || n%2==0) { std::cout<<"The number is invalid.Please insert again:"; std::cin>>n; } 初始化数组 for(i=0; i<=n; ++i) { for(j=0; j<=n; ++j) { a[i][j]=0; } } i = 0; j = n/2; a[i][j] = 1; for(k=2; k<=n*n; ++k) { i = i - 1; j = j + 1; if(i<=-1 && j>=n) //行列都越界 { i = 1; j = n - 1; } else { if( i<=-1 ) //行越界 { i = n - 1; } if(j>=n) //列越界 { j = 0; } } if(a[i][j]==0) //如果里面没数字 { a[i][j] = k; } else //得到新的数值 { i = i + 2; j = j - 1; a[i][j] = k; } } for(i=0; i<=n-1; ++i) { for(j=0; j<=n-1; ++j) { printf("%3d", a[i][j]); } printf("\n"); } }
运行结果如下图所示:
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
本文向大家介绍C++ 数据结构之对称矩阵及稀疏矩阵的压缩存储,包括了C++ 数据结构之对称矩阵及稀疏矩阵的压缩存储的使用技巧和注意事项,需要的朋友参考一下 对称矩阵及稀疏矩阵的压缩存储 1.稀疏矩阵 对于那些零元素数目远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse)。 人们无法给出稀疏矩阵的确切定义,一般都只是凭个人的直觉来理解这个概念,即矩阵中非零元素的个
问题内容: 我需要存储一个2d矩阵,其中包含邮政编码以及每个邮政编码之间的距离(以km为单位)。我的客户有一个计算距离的应用程序,然后将其存储在Excel文件中。目前,有952个地方。因此,矩阵将具有952x952 = 906304条目。 我试图将其映射到HashMap [Integer,Float]。整数是两个字符串在两个位置(例如“ A”和“ B”)的哈希码。浮点值是它们之间的距离(以公里为单
Array是一个容器,可以容纳固定数量的项目,这些项目应该是相同的类型。 大多数数据结构都使用数组来实现其算法。 以下是理解Array概念的重要术语。 Element - 存储在数组中的每个项称为元素。 Index - 数组中元素的每个位置都有一个数字索引,用于标识元素。 数组表示 可以使用不同语言以各种方式声明数组。 为了说明,我们采取C数组声明。 可以使用不同语言以各种方式声明数组。 为了说明
本章节主要给大家引入视图矩阵和投影矩阵两个新的概念,如果你没有图形学基础,对这两个概念暂时还没有认知,也没有关系。通过前面的学习相信你对平移、旋转等矩阵有了一定的认知,至于投影和视图矩阵和平移、旋转等模型矩阵一样也会对WebGL顶点进行坐标变换,至于如何变换下面会逐步讲解。 在学习本章节之前,如果你对Three.js已经有了一定的了解,可以尝试从WebGL视图矩阵和投影矩阵的角度去深入理解Thre
我有两个列表,每个列表中有两个矩阵。。是否有一种方法可以对它们进行矩阵计算,即相加,其中matrix1中的蓝色矩阵与matrix2中的蓝色矩阵相加,matrix1中的红色矩阵与matrix2中的红色矩阵相加。我能想到的唯一方法是在循环中进行计算 请注意,我将有大约10个,以及不止一组(即蓝色、红色、绿色、紫色)
我需要创建一个嵌套数组,使用路径作为子节点的参考。例如:4.1是4岁的孩子,4.1.1是4.1岁的孩子,4.2是4岁的孩子...我有一个平面数组,里面有所有的数据和路径。如何创建嵌套数组的最佳方法,其中子数组根据其路径嵌套到其父数组。 输入: 输出: 最好的方法是递归的。对这个算法有什么建议吗?