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;}

代码解释:

  1. 包含头文件: 包含 stdio.hstdlib.hmath.h 头文件,用于使用输入输出函数、绝对值函数等。2. 初始化数组: 初始化 ayy 数组,避免未定义行为。3. 读取输入: 使用 scanf 函数读取用户输入的数组大小和元素值。4. 计算最短距离: * 嵌套循环遍历数组的每个元素。 * 如果当前元素为'1',则距离为0。 * 否则,遍历整个数组,计算当前元素到所有'1'元素的曼哈顿距离,并找到最小值。 * 输出最小距离。

SEO优化说明:

  • 标题中包含关键词“C语言”、“二维数组”、“最短距离”。* 描述中简要介绍了代码功能,并提到了关键词。* 关键词列表包含相关术语。* 内容结构清晰,使用标题和段落。* 代码中添加了注释,方便理解。

希望这篇文章能够帮助您理解如何使用C语言计算二维数组中最短距离,并学习如何进行SEO优化,使您的文章更容易被搜索引擎收录。

C语言二维数组最短距离计算 - SEO优化版

原文地址: http://www.cveoy.top/t/topic/6re 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录