C++中,怎么输出一个n阶矩阵呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中,怎么输出一个n阶矩阵呢?相关的知识,希望对你有一定的参考价值。

C++中,输出一个n阶矩阵步骤如下:

1、首先,定义8个整型变量,实现n阶矩阵的计算。

2、接着,定义一个数组变量保存奇数幻方的各数值。

3、输入奇数幻方的阶数。

4、给数组赋初值,初始值为0。

5、计算第一个数1的坐标,保存在变量x和y中。

6、将第一数字1,保存在数组中。

7、用for循环,实现奇数幻方各值位置的计算。

8、用累加的方式,获取奇数幻方的下一个数值。

9、计算奇数幻方下一个值的坐标。

10、如果元素的x坐标小于1,则x值为n;如果元素的y坐标小于1,则y值为n。

11、用if循环处理计算出的坐标已存在的情况,如果存在,则位置变为原数值的下方。

12、将下一个奇数幻方的数值,保存在数组中。

13、最后,输出奇数幻方的每一个数值,每输出一行执行换行。

14、运行程序,输入一个阶数后,电脑就会输出该阶数的矩阵。

参考技术A

1、在c中矩阵其实就是用一个二维数组表示即可。

2、代码如下,n=3模拟一个3阶矩阵,你也可以自己随便设置n。

#include <iostream>

using namespace std;

int main()

const int n=3;  //假设为3阶矩阵

int i,j;

double  A[n][n];//矩阵用一个二维数组表示

for(i=0;i<n;i++)    //循环录入矩阵的元素

for(j=0;j<n;j++)        

cin>>A[i][j];

for(i=0;i<n;i++) 

  //循环输出矩阵的元素

for(j=0;j<n;j++)        

cout<<A[i][j]<<"  ";

cout<<endl;//每输出矩阵一行元素后就换行

参考技术B //定义矩阵A[n],比如矩阵元素都为double类型,const int n=20;double A[n][n];//对A赋值。。。。//输出n阶矩阵for(i=0;i<n;i++) for(j=0;j<n;j++) cout<<A[i][j]; 参考技术C 1、用两个for语句组成双层循环输出即可。
2、例如:
定义矩阵A[n],比如矩阵元素都为double类型,const int n=20;double A[n][n];//对A赋值。。。。//输出n阶矩阵for(i=0;i<n;i++) for(j=0;j<n;j++) cout<<A[i][j];

基础练习 矩阵乘法

问题描述
  给定一个N阶矩阵A,输出A的M次幂(M是非负整数)
  例如:
  A =
  1 2
  3 4
  A的2次幂
  7 10
  15 22
输入格式
  第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数
  接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值
输出格式
  输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开
样例输入
2 2
1 2
3 4
样例输出
7 10
15 22
这个题其实就是求矩阵的乘方,在矩阵相乘的基础上循环,在网上看到很多复杂的也是优秀的代码,但是因为我个人目前水平有限只能写出依据原理实现的比较low的代码,
虽然low但是也算容易理解吧
代码如下:
 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int n, m;
 8     cin >> n >> m;
 9     int martix[n][n], result[n][n];
10     for(int i=0;i<n;i++)
11     for(int j=0;j<n;j++)
12     {
13         cin >> martix[i][j];
14         result[i][j] = martix[i][j];
15     }
16     
17     //方阵的0次幂为单位矩阵(左上角到右下角的对角线为1其他部分为0) 
18     if(m==0)
19     {
20         for(int i=0;i<n;i++)
21         {
22             int flag=1; 
23             for(int j=0;j<n;j++)
24             {
25                 if(j==n-1) flag=0;
26                 if(flag)  //元素不是一行的最后一个 
27                 {
28                     if(i==j) cout << 1 << "  ";
29                     else cout << 0 << "  ";
30                 }
31                 else
32                 {
33                     if(i==j) cout << 1 ;
34                     else cout << 0 ;
35                 }
36             }
37             cout << endl;    
38         } 
39     }//if
40     
41     else
42     {
43         //循环计算矩阵的乘方 
44         for(int k=1;k<m;k++)
45         {
46             //临时数组保存计算结果:
47             int temp[n][n]; 
48             memset(temp,0,sizeof(temp)); 
49             
50             //计算每次的乘积: 
51             for(int i=0;i<n;i++)
52             for(int j=0;j<n;j++)
53             for(int s=0;s<n;s++)
54             {
55                 temp[i][j] += result[i][s] * martix[s][j];
56             }    
57             
58             //把每次计算出的结果赋给结果矩阵: 
59             for(int i=0;i<n;i++)
60             for(int j=0;j<n;j++)
61             {
62                 result[i][j] = temp[i][j];
63             }    
64         }
65         
66         //按题目要求输出: 
67         for(int i=0;i<n;i++)
68         {
69             for(int j=0;j<n;j++)
70             {
71                 if(j!=n-1)
72                     cout << result[i][j] << "  ";
73                 else
74                     cout << result[i][j];
75             }
76             cout << endl;
77         }    
78     }//else
79 
80     
81     
82     
83     return 0;
84 }

 

以上是关于C++中,怎么输出一个n阶矩阵呢?的主要内容,如果未能解决你的问题,请参考以下文章

C语言矩阵相乘

C++爬楼梯(青蛙跳台阶)

ZZNUOJ_C语言1125:上三角矩阵的判断(附完整源码)

一阶矩阵的乘积

基础练习: 矩阵乘法

基础练习 矩阵乘法