C语言二维数组最短距离计算 - SEO优化版
C语言二维数组最短距离计算 - SEO优化版
这篇文章提供了一个C语言代码示例,用于计算二维数组中每个元素到最近的'1'元素的最短距离。
代码功能:
- 读取用户输入的二维数组大小。* 读取二维数组元素(0或1)。* 计算每个元素到最近的'1'元素的最短曼哈顿距离。* 输出距离矩阵。
**优化后的代码:**c#include <stdio.h>#include <stdlib.h>#include <math.h>
int main() { int distance = 0; int arr[99][99]; int ayy[99][99] = {0}; // 初始化数组 ayy
int n, m; // 读取数组大小 printf('请输入二维数组的行数和列数:'); scanf('%d %d', &n, &m); // 读取数组元素 printf('请输入二维数组元素(0或1):
'); for (int i = 0; i < n; i++) { char line[m + 1]; scanf('%s', line); for (int j = 0; j < m; j++) { arr[i][j] = line[j] - '0'; } }
// 计算最短距离 for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (arr[i][j] == 1 && ayy[i][j] == 1) printf('0 '); else if (ayy[i][j] == 0) { int minDistance = n + m; for (int g = 0; g < n; g++) { for (int k = 0; k < m; k++) { if (arr[g][k] == 1) { distance = abs(i - g) + abs(j - k); if (distance < minDistance) { minDistance = distance; } } } } printf('%d ', minDistance); } } printf('
'); }
return 0;}
代码解释:
- 包含头文件: 包含
stdio.h、stdlib.h和math.h头文件,用于使用输入输出函数、绝对值函数等。2. 初始化数组: 初始化ayy数组,避免未定义行为。3. 读取输入: 使用scanf函数读取用户输入的数组大小和元素值。4. 计算最短距离: * 嵌套循环遍历数组的每个元素。 * 如果当前元素为'1',则距离为0。 * 否则,遍历整个数组,计算当前元素到所有'1'元素的曼哈顿距离,并找到最小值。 * 输出最小距离。
SEO优化说明:
- 标题中包含关键词“C语言”、“二维数组”、“最短距离”。* 描述中简要介绍了代码功能,并提到了关键词。* 关键词列表包含相关术语。* 内容结构清晰,使用标题和段落。* 代码中添加了注释,方便理解。
希望这篇文章能够帮助您理解如何使用C语言计算二维数组中最短距离,并学习如何进行SEO优化,使您的文章更容易被搜索引擎收录。
原文地址: http://www.cveoy.top/t/topic/6re 著作权归作者所有。请勿转载和采集!