我在C语言中有一个简单的问题,所以,我想检查第二个数组(2d数组)中是否存在数组值,无论值的顺序(随机顺序)
例如:
如果arr[3]={1,2,3}
mat[3][3]={{1,5,3},{4,5,6},{4,2,5}};
中的值
在这种情况下,值存在,因此程序将print ("OK");
注意:我不想两次计算相同的值
答案 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;
}