随笔分类 - 二维数组
摘要:二维数组学习指南(行列从1开始版本) 一、二维数组基础(行列从1开始) 1. 声明与初始化 int matrix[101][101]; // 行和列都从1开始使用 memset(matrix, 0, sizeof(matrix)); // 初始化 2. 输入输出模板 // 输入n行m列矩阵 for(
阅读全文
摘要:Z字上的数字和解题思路 解题思路 理解Z字形构成: 第一行所有元素 最后一行所有元素 辅对角线(从右上到左下的对角线)所有元素 需要减去重复计算的元素(第一行最后一个元素和最后一行第一个元素) 计算步骤: 先计算第一行和最后一行的所有元素和 再加上辅对角线上的所有元素 最后减去重复计算的两个交点元素
阅读全文
摘要:矩阵减法解题思路 解题思路 理解矩阵减法:两个相同维度的矩阵对应位置的元素相减,得到一个新的矩阵 输入处理: 先读取矩阵的行数n和列数m 然后读取第一个n×m矩阵A 接着读取第二个n×m矩阵B 计算差值: 创建第三个矩阵C来存储A-B的结果 逐个计算对应位置的差值 输出结果:按照输入格式输出结果矩阵
阅读全文
摘要:打印特殊矩阵解题思路 解题思路 理解矩阵填充规律: 奇数行(第1、3、5...行)从左到右顺序填充数字 偶数行(第2、4、6...行)从右到左顺序填充数字 数字从1开始连续递增 实现步骤: 初始化计数器k=1 遍历每一行: 如果是奇数行,从左到右填充递增数字 如果是偶数行,从右到左填充递增数字 最后
阅读全文
摘要:图像旋转解题思路 解题思路 理解顺时针旋转90度:旋转后的矩阵行数变为原矩阵的列数,列数变为原矩阵的行数 旋转规律:原矩阵的第j列变为旋转后矩阵的第j行,且顺序反转 输入处理:先读取矩阵的行列数n和m,然后读取n×m矩阵 旋转输出:按列遍历原矩阵,每列从下到上输出,形成旋转后的行 代码注释 #inc
阅读全文
摘要:矩阵水平翻转解题思路 解题思路 理解水平翻转:水平翻转(也称为垂直翻转)是将矩阵的行序倒置,即第一行变成最后一行,最后一行变成第一行,中间行依次交换 输入处理:读取5×5的矩阵数据 翻转输出:按行号从大到小的顺序输出矩阵各行,实现水平翻转效果 代码注释 #include<bits/stdc++.h>
阅读全文
摘要:解题思路 理解相似度定义:比较两个相同大小的0-1矩阵,统计相同位置元素相同的数量,计算占总元素数的百分比 输入处理: 先读取矩阵的行数n和列数m 然后读取第一个n×m矩阵 接着读取第二个n×m矩阵 比较计算: 逐个比较两个矩阵对应位置的元素 统计相同元素的数量 计算百分比: 将相同元素数量除以总元
阅读全文
摘要:对角线和解题思路 解题思路 理解对角线:n×n矩阵有两条对角线: 主对角线:从左上到右下(行号=列号) 副对角线:从右上到左下(行号+列号=n+1) 避免重复计算:当n为奇数时,中心元素会被两条对角线各计算一次,需要减去一次 输入处理:先读取矩阵大小n,然后读取n×n矩阵 计算和:分别计算两条对角线
阅读全文
摘要:矩阵相加解题思路 解题思路 理解矩阵加法:矩阵加法是将两个相同维度的矩阵对应位置的元素相加,得到一个新的矩阵。 输入处理:题目需要先读取第一个3x4矩阵,再读取第二个3x4矩阵。 计算和矩阵:创建第三个矩阵来存储前两个矩阵对应元素的和。 输出结果:按照输入格式输出结果矩阵,注意行末不能有多余空格。
阅读全文
摘要:解题思路 问题分析: 题目要求生成一个n×n的方阵,学号从1开始按行依次排列。 第一行填充1到n,第二行填充n+1到2n,以此类推,直到填满n×n个数字。 需要特别注意输出格式:数字之间用空格分隔,行末不能有多余空格。 实现方法: 使用双重循环填充二维数组,外层循环控制行,内层循环控制列。 使用一个
阅读全文
摘要:解题思路 问题分析: 题目要求从一个4行5列的二维数组中,找出所有行号和列号之和等于给定值k的元素。 行号和列号从1开始计数。 需要按照行优先的顺序输出这些元素(即先输出第一行符合条件的元素,再第二行,以此类推)。 如果没有符合条件的元素,则输出"none"。 实现方法: 使用双重循环遍历二维数组的
阅读全文
摘要:6928: yym下象棋 描述 yym是一个喜欢玩象棋的人,现在yym的棋盘上有一匹马, 如果你们不知道马的走法,请看下图:(棋盘大小为9*9) 现在,yym想要一步吃掉它周围的其他棋子(不考虑黑或红,且数据保证不存在拌马脚的情况)请问yym最多能有几种吃的方案。 输入 一个棋盘,“H”代表马,其他
阅读全文

浙公网安备 33010602011771号