【发布时间】:2020-08-06 03:50:27
【问题描述】:
这是它应该做的: 此函数应采用 2D 数组,并应检查每一行和每一列是否存在在行或列上连续重复/匹配 3 次的任何值。它还应该识别是否有超过 3 个并且应该将其全部视为 1 个匹配项。匹配的值应全部设置为零。使用相同的常量大小。您不知道这些值可能是什么(在下面的示例中,它们是 1,2 和 3,但它可以是除零以外的任何值)。 void checkMatches(int[ARRAY_SIZE][ARRAY_SIZE] arr)
这就是我所拥有的:
const int ARRAY_SIZE=8;
void checkMatches(int arr9[ARRAY_SIZE][ARRAY_SIZE]) {
int count = 0;
//check each row
for (int row = 0; row < ARRAY_SIZE; row++) {
int i = arr9[row][0];
for (int col = 1; col < ARRAY_SIZE; col++) {
if ( arr9[i] == arr9[i + 1]) {
count++;
if (count >= 3) {
i = 0;
}
}
else {
count = 0;
}
}
}
//check each column
for (int col = 0; col < ARRAY_SIZE; col++) {
int i = arr9[0][col];
for (int row = 1; row < ARRAY_SIZE; row++) {
if (arr9[i] == arr9[i + 1]) {
count++;
if (count > +3) {
i = 0;
}
}
else {
count = 0;
}
}
}
}
int main(){
int val;
int arr9test[8][8];
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
cout << "Enter number to populate the array (include a few consecutive numbers): ";
cin >> val;
arr9test[j][i] = val;
}
}
checkMatches(arr9test);
cout << "Replacing consecutive numbers with 0's: " << arr9test << endl;
}
任何提示将不胜感激!
这是我得到的输出。 (非常不是数组) enter image description here
【问题讨论】:
-
问题是什么?我认为该程序没有做正确的事情。如果是这样,请准确描述会发生什么。
-
也使用它发布
main。所以它会变成Minimal Reproducible Example。 -
由于其他一些问题,我目前无法运行该程序,但我想知道我的代码是否会按照问题要求执行,或者我是否走错了路。 @cigien
-
找出问题的最佳方法是解决问题,运行代码并查看它的作用。
-
我想知道我的代码是否会按照问题所说的那样做,由于其他问题,我无法运行程序来测试它。我也添加了主!谢谢!