gpt4 book ai didi

c++ - 在 C 二维数组中找到一个值的多个索引

转载 作者:行者123 更新时间:2023-11-27 23:14:57 28 4
gpt4 key购买 nike

我是 C 语言的新手,但我在 matlab 方面有一些不错的技能。在 matlab 中,我可以使用 [x,y]=find(matrix==any_value) 并返回大量的 xy 索引如果该值存在于矩阵中,则为给定值。

我尝试了一些 find 函数,但我读到的是它只返回矩阵中第一次出现的值的索引。

假设我在 C 中有一个包含一些重复值的 double 二维数组,我如何才能在此矩阵中找到重复值的 xy 坐标?

最佳答案

在 C 中你只能返回一个值。结果是一对,你需要不止一个。我会声明一个点结构并填充这些对象的数组;该函数将返回找到的结果数...让您开始,例如:

struct point {
int x;
int y;
};

int find_stuff(int* mat[], int dimX, int dimY, int desired, struct point out[])
{
int ret=0;
int x, y;

for(y=0; y<;dimY; y++)
for (x=0; x<dimX; x++)
if (mat[y][x] == desired) {
out[ret].x = x;
out[ret].y = y;
ret++;
}

return ret;
}

void test_the_function(int* mat[], int dimX, int dimY, int desired)
{
struct point results[100];
int i,n;

n = find_stuff(mat, dimX, dimY, desired, results);

for (i=0; i<n; i++)
printf("%i\t(%i, %i)\n", i, results[i].x, results[i].y);
}

关于c++ - 在 C 二维数组中找到一个值的多个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16941714/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com