1

我在编写一个函数时遇到了这个问题,当用户输入 x,y(二维数组的坐标或索引)时,如果没有,它将返回 0,否则返回 1。

4

3 回答 3

3

为此,您需要做的第一件事是初始化数组。你可以这样做:

int i,j;
for (int i = 0; i<SizeX; i++) {
    for (int j = 0; j<SizeY; j++) {
        arr[i][j] = 0;
    }
}

现在您可以通过这种方式轻松检查它:

int check (int arr[SizeX][SizeY] , int i , int j) {
    // out-of-bound check
    if (i < SizeX && j < SizeY) {
        return (arr[i][j] == NULL ? 0 : 1);
    }else {
        // -1 indicate error - out of bound indexes
        return (-1);
    }
}
于 2013-07-21T14:06:15.187 回答
0

你什么都没有是什么意思?

如果你不初始化你的arry,它包含垃圾值,

但如果你这样做,你可以检查单元格是否包含原始值或不同的值

1,然后返回 1 或 0。

于 2013-07-21T13:56:27.167 回答
0

其他人通过检查标记值来回答元素是否存在的问题。这些答案假设二维数组已经分配。如果您的情况有不同的内存分配模型(最初分配 1D 并动态分配 2D),那么您还必须检查 2D 是否实际分配给任何 1D 索引。一维 => 第一维;2D => 第二维。

于 2013-07-21T20:35:59.587 回答