数据结构之矩阵行列和相等的实例

 更新时间:2017年10月11日 08:35:25   作者:爱思考的小鸟  
这篇文章主要介绍了数据结构之矩阵行列和相等的实例的相关资料,希望通过本文能帮助到大家,让大家掌握这部分内容,需要的朋友可以参考下

以下为展示“矩阵行列和相等”的简单示例:

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++ 巧开平方的实现代码

    如果没有计算器,我们如何求2的平方根
    2013-05-05
  • C++元编程语言初步入门详解

    C++元编程语言初步入门详解

    这篇文章主要为大家介绍了C++元编程语言初步入门的详解示例,文中包含详细的基本概念及运用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • C语言 二叉查找树性质详解及实例代码

    C语言 二叉查找树性质详解及实例代码

    这篇文章主要介绍了C语言 二叉查找树性质详解及实例代码的相关资料,需要的朋友可以参考下
    2017-03-03
  • Qt实现卡牌对对碰游戏(附demo)

    Qt实现卡牌对对碰游戏(附demo)

    本文主要介绍了Qt实现卡牌对对碰游戏,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • C++使用正则表达式的详细教程

    C++使用正则表达式的详细教程

    正则表达式是一个非常强大的工具,主要用于字符串匹配,下面这篇文章主要给大家介绍了关于C++使用正则表达式的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • C++实现学生住宿管理系统

    C++实现学生住宿管理系统

    这篇文章主要为大家详细介绍了C++实现学生住宿管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • C++实现浮点数精确加法

    C++实现浮点数精确加法

    这篇文章主要为大家详细介绍了C++实现浮点数精确加法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • C++编程之 std::forward使用例子

    C++编程之 std::forward使用例子

    std::forward 是一个 C++11 中的模板函数,其主要作用是在模板函数或模板类中,将一个参数以“原样”(forward)的方式转发给另一个函数,这篇文章主要介绍了C++编程之 std::forward,需要的朋友可以参考下
    2023-03-03
  • 使用C语言编写基于TCP协议的Socket通讯程序实例分享

    使用C语言编写基于TCP协议的Socket通讯程序实例分享

    这篇文章主要介绍了使用C语言编写基于TCP协议的Socket通讯程序实例分享,能够实现包括重新连接与每分钟通信一次等的功能,需要的朋友可以参考下
    2016-03-03
  • C++ cin不同状态详细讲解

    C++ cin不同状态详细讲解

    cin是C++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream类的对象
    2022-10-10

最新评论