c - neighbors.c程序调试(多维数组)

标签 c arrays

我目前正在编写一个 C 程序,用于查找多维数组中大于所有相邻元素的元素。所以如果我的输入是

3 2 9

13 7 6

1 5 8

它应该打印

9
13
8

但是,它似乎不起作用 :( 我已经运行了几次,但似乎没有发现任何问题,除了我可能不正确地处理我的数组。你们有什么建议吗?

这是我当前的代码。 http://pastebin.com/sJBhQMjy

谢谢!

PS:在我的 pastebin 链接上,我说的是“二维数组”——这是一个打字错误,我只是指多维。

最佳答案

您的程序无法运行,因为您的加宽没有效果。您正在将本地数组 [n+2][n+2] 分配给按值传递参数,因此更改无效。

即使是这样,main 中的循环也会探索加宽数组的错误部分(左上角,而不是存储真实数据的中心)。

最后,你最里面的 if 比较 a[i][j]a[m][n] 而不是 a[m][p].

您应该在 neighbor 函数的最里面的 if 中添加更多条件,而不是扩大数组:

if(i>=0 && i<n && j>=0 && j<n && a[i][j]>a[m][p]) return FALSE;

关于c - neighbors.c程序调试(多维数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9371814/

相关文章:

c - 指向结构变量的指针

在 C 中计算传递给 scanf() 的参数

arrays - 数组返回第一个元素 char 而不是整个元素

c - 包括 PIC32MX 上 FreeRTOS 简单演示的问题

c - 使用 libcurl 检索到的 header 信息来确定文件名

Javascript 访问嵌套元素

python - 将键盘表示为 3D 数组

javascript - 为什么不能用点符号访问 javascript 数组元素?

c - 使用scanf读取带空格的字符串?

c - fscanf 没有存储任何结果