首页 > 其他分享 >找出二维数组中某元素的所有对角元素

找出二维数组中某元素的所有对角元素

时间:2023-01-15 18:02:03浏览次数:61  
标签:cout int void 元素 二维 数组 对角线 对角


-----------------------------------------------------------------------------------------------------------

写这篇文章的目的,是为了很好的理解八皇后问题,网上一大堆八皇后

问题的解决方法的代码,看后真是失望之极,因为他们没有说出最关键的问题,

就是我们如何判断皇后是否在同一对角线上?这是很多初学者最困惑的地方,

网上的例子丝毫没有提到这个问题,真是失望之极。

-----------------------------------------------------------------------------------------------------------

现在让我们判断两个元素是否在同一对角线上。

数据元素一  arr1【a】【b】

数据元素二 arr2【m】【n】

//当两个数组元素的行坐标和列坐标,各自进行相减或相加所得的结果一样时,则它们在同一对角线上面

//这个你可以自己画图来验证,当初我也是这样推敲出来的

if(a-b==m-n || a+b=m+n)

     cout<<"arr1和arr2在同一对角线上";

------------------------------------------------------------------------------------------------------------------

程序验证:

#include <iostream>
#include <Windows.h>
using namespace std;

/*

函数:Catercorner
函数作用:输出二维数组中某一个元素的所有对角线元素
参数:
arrRow为数组的行数
arrCol为数组的列数
m为元素的行坐标,n为元素的列坐标

*/

void Catercorner(int arrRow,int arrCol,int m,int n)
{
if (m>=arrRow||m<0)
{
cout<<"元素横坐标超界";
return;
}
if (n>=arrCol||n<0)
{
cout<<"元素列坐标超界";
return;
}

for(int i=0;i<arrCol;i++)
cout<<" "<<i<<"";
cout<<endl;
for(int i=0;i<arrRow;i++)
{
cout<<i<<" ";
for(int j=0;j<arrCol;j++)
{
if(m-n==i-j||m+n==i+j)//是对角线元素时,输出实心方框
cout<<"■ ";
else
cout<<"□ "; //非对角线元素时,输出空心方框
}
cout<<"\n";
}
}


void main(void)
{
//设置控制台输出行数和列数
system("mode con:cols=100 lines=1000");

for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
{
printf("数组元素Array[%d][%d]的所有对角元素\n",i,j);
Catercorner(8,8,i,j);
cout<<endl;
}
cin.get();
}

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

//效果截图

找出二维数组中某元素的所有对角元素_八皇后

找出二维数组中某元素的所有对角元素_数组_02

找出二维数组中某元素的所有对角元素_对角_03

找出二维数组中某元素的所有对角元素_八皇后_04

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

​​

 

 

 

 

 

 

 

标签:cout,int,void,元素,二维,数组,对角线,对角
From: https://blog.51cto.com/softo/6008868

相关文章

  • 区间DP-二维前缀和-差分-6292. 子矩阵元素加 1
    304.二维区域和检索-矩阵不可变DescriptionDifficulty:中等RelatedTopics:设计,数组,矩阵,前缀和给定一个二维矩阵matrix,以下类型的多个请求:计算其子矩形......
  • 读编程与类型系统笔记08_面向对象变成的元素
    1. 面向对象编程1.1. (Object-OrientedProgramming,OOP)1.2. 基于对象的概念的一种编程范式1.3. 对象可以包含数据和代码1.4. 数据是对象的状态1.5. 代码是一个......
  • 219. 存在重复元素II
    问题链接https://leetcode.cn/problems/contains-duplicate-ii/description/解题思路这道题目是一个经典的滑动窗口题。常规解法,注意边界值就行。注意我们应该完全模......
  • C++计算矩阵对角线和的程序
    二维数组或矩阵的使用对于几个应用。矩阵行和列用于保存数字。我们可以定义2DC++中的矩阵也使用多维数组。在本文中,我们将了解如何使用C++计算给定方阵的对角线和。矩......
  • 25 二维直方图
    25二维直方图opencv知识点:计算直方图数据-calcHist四舍五入浮点数-cvRound寻找最小/最大值-minMaxLoc本课所解决的问题:如何绘制HSV图像的二维直方图?1.二......
  • JavaScript 中搜索数组元素的四种方法
    在实际开发当中,我们经常会遇到类似诸如下面的需求:获取满足特定条件的数组中的所有项目要检查是否满足条件?检查数组中是否有特定值?在数组中找到指定值的索引?在本文中,我们将讨......
  • 【LeeCode】27. 移除元素
    【题目描述】给你一个数组 ​​nums​​ 和一个值 ​​val​​,你需要 ​​原地​​ 移除所有数值等于 ​​val​​ 的元素,并返回移除后数组的新长度。不要使用额外的......
  • 剑指Offer 082. 含有重复元素集合的组合
    给定一个可能有重复数字的整数数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使......
  • day3 | 203.移除链表元素、707.设计链表、206.反转链表
    题目链接:203.移除链表元素-力扣(LeetCode)题目描述:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val==val 的节点,并返回 新的头节点......
  • Python之字典添加元素
    本文使用代码book_dict={"price":500,"bookName":"Python设计","weight":"250g"} 第一种方式:使用[]book_dict["owner"]="tyson" 说明:中括......