我目前正在编写一个 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/