所以我想搜索我的2d数组并找到搜索值出现的位置(行号和列号),并将行号和列号存储在二维数组的连续行中
我的指示 "如果在数据数组中找到该值,则将数据数组中找到的位置(行和列偏移)存储到locations数组中。每次在数据数组中找到该值时,该位置都将存储在locations数组的下一行中。行偏移将存储在列0中,列偏移将存储在位置数组的第1列中。按行搜索二维数据数组。"
这是我困惑的地方
locations[Rsize][Rsize]=data[i][j];
Rsize++;
我不知道如何将行和列从数据数组移动到新位置数组 位置数组row 0 col 0应该有数据行 &安培; locations array row 0 col 1应该有数据列
void find_value(short data[][15], short rows, short cols, short locations[] [2], short &Rsize, short searchValue)
{
short i,j;
Rsize=0;
for(i=0;i<rows;i++)
{
for(j=0;j<cols;j++)
{
if(data[i][j]==searchValue)
{
locations[Rsize][Rsize]=data[i][j];
Rsize++;
}
}
}
}
答案 0 :(得分:2)
你很亲密。请记住,位置只是一个数组数组。您只想将大小为2的数组附加到位置。
您想要更改此内容:
locations[Rsize][Rsize]=data[i][j];
到此:
locations[Rsize][0] = i;
locations[Rsize][1] = j;