gpt4 book ai didi

C++:帮我找个bug——二维数组搜索——

转载 作者:行者123 更新时间:2023-11-30 04:05:48 25 4
gpt4 key购买 nike

我的程序要求输入数字并将它们放在一个二维数组中。然后它会询问一个数字并执行搜索,然后打印出该数字在二维数组中的位置。

搜索功能有一个错误,它会将 1 加到预期的行位置。通过将 1 减去“行”变量来“修复”它,但它是 ovb Not Acceptable 。

目前对此感到有点愚蠢,我们将不胜感激。

#include <iostream>
using namespace std;

#define R 3
#define C 2

typedef int matrix[R][C];

void input(matrix m)
{
int i, j;
i = j = 0;

for(i = 0; i< R; i++)
{
for(j = 0; j < C; j++)
{
cout << "Row " << i << " Column " << j << ": ";
cin >> m[i][j];
}
}
}

void search(int x, matrix m, int& row, int& column)
{
int r, c;
bool OK;
OK = false;
r = 0;

while((!OK) && (r < R))
{
c = 0;
while((!OK) && (c < C))
{
if(m[r][c] == x)
OK = true;
else
c++;
}
r++;
}

column = c;
row = r-1; //LOL
}



int main()
{
matrix mat;
int number;
int row;
int column;

input(mat);

cout << "Which number are you looking for?: ";
cin >> number;
search(number, mat, row, column);
cout << endl << "Row " << row << " Column: " << column;

fflush stdin;
getchar();
return 0;
}

最佳答案

您应该通过引用输入来传递矩阵:

void input(matrix& m)

否则您不会填充矩阵。

我还建议对此进行转换:

#define R 3
#define C 2

到:

const std::size_t R = 3;
const std::size_t C = 2;

最后我建议你看看std::arraystd::search .

关于C++:帮我找个bug——二维数组搜索——,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23137174/

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