【发布时间】:2012-04-22 13:28:37
【问题描述】:
我要做以下练习:
编写一个函数,给定两个整数(x 和 k)和一个 M X N 矩阵, 如果有一个元素至少出现 k 次,则返回 TRUE 在矩阵的至少 x 列中。
这是我的解决方案,但有问题:
#include <iostream>
using namespace std;
const int DIM = 3;
bool check ( int matrix[DIM][DIM], int element, int k, int x )
{
bool occur = false;
int i,j = 0;
for ( i=0; i<DIM; i++ )
{
for ( j=0; j<DIM; j++)
{
while ( i<k && occur)
{
matrix[i][j] == element;
i++;
}
}
}
return occur;
}
int main ()
{
int matrix[DIM][DIM] = {{1,2,3},
{4,1,6},
{7,8,9}};
int x = 2;
int k = 1;
int elemento = 1;
if ( check (matrix, element, k , x))
{
cout << "l'elemento "<< elemento <<" ricorre "<< k <<" volta/e in "<< x <<" colonna/e";
}
return 0;
}
【问题讨论】:
-
怎么了?发生了什么?发生了什么没有?
-
你永远不会设置发生。你需要坐下来思考你的算法。
-
对于诸如“有问题”之类的错误描述,我们的解决方案只能是“修复某事” :-) 如果您想要更多,首先提供所有相关信息来描述您的尽可能准确地解决问题。
-
同意mert,从来没有
occur = true -
i < k和matrix[i][j] == element;似乎不正确。还有mert所说的。