【发布时间】:2014-06-01 23:06:35
【问题描述】:
我的程序要求输入数字并将它们放在二维数组中。 然后它会询问一个数字并执行搜索,然后在二维数组中打印该数字的位置。
搜索功能有一个错误,将 1 添加到预期的行位置。通过将 1 减去“行”变量来“修复”它,但它是 ovb 不可接受的。
目前对此感到有点愚蠢,将不胜感激。
#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;
}
【问题讨论】: