检查2d数组中的数组值

时间:2017-08-11 17:52:06

标签: c arrays multidimensional-array

我在C语言中有一个简单的问题,所以,我想检查第二个数组(2d数组)中是否存在数组值,无论值的顺序(随机顺序)

例如:

如果arr[3]={1,2,3}

中存在所有值,我想查看mat[3][3]={{1,5,3},{4,5,6},{4,2,5}};中的值

在这种情况下,值存在,因此程序将print ("OK");

注意:我不想两次计算相同的值

2 个答案:

答案 0 :(得分:1)

这是一个例子

mnesia:index_read

答案 1 :(得分:0)

仅适用于表格 - 需要内存中的连续数据

如果找不到则返回0,如果找到全部则返回1

int FindVectorInMatrix(int *haystack, int rows, int columns, int *needle, int length) // as described by OP order does not matter
{
    int *tmp;
    int result = 0;
    for (int i = 0; i < length; i++)
    {
        tmp = haystack;
        if (result < i) 
        {
           result = 0;
           break;
        }
        for (int j = 0; j < rows * columns; j++)
        {
            if (*tmp++ == *needle) 
            {
                result++;
                break;
            }
        }
        needle++;
    }
    return !!result;
}