C++.
Задание: написать комментарий к каждой строке, что в ней происходит.
Описание задачи:
вводится: n, m, k
дан двумерный массив n*m, заполненный 0 и 1
нужно вывести номера строк. где подряд есть k нулей
0 1 0 0 1
1 0 0 0 1
0 0 0 0 1
1 1 1 1 1
k = 3
cpp
#include <iostream>
using namespace std;
int main() {
int n, m, k;
cout << "Введите значения n, m и k: ";
cin >> n >> m >> k;
int arr[n][m];
cout << "Введите значения двухмерного массива: " << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> arr[i][j];
}
}
bool flag;
for (int i = 0; i < n; i++) {
int count = 0;
for (int j = 0; j < m; j++) {
if (arr[i][j] == 0) {
count++;
if (count == k) {
flag = true;
cout << "Номер строки: " << i+1 << endl;
break;
}
} else {
count = 0;
}
}
}
if (!flag) {
cout << "Строка с " << k << " нулями подряд не найдена." << endl;
}
return 0;
}
В данном коде сначала считываются значения переменных n, m и k с помощью функции cin. Затем создается двумерный массив размером n на m и заполняется значениями, введенными пользователем.
Затем создается переменная-флаг flag, которая обозначает, была ли найдена строка с k нулями подряд. Чтобы присвоить ей значение true или false, она должна быть объявлена вне цикла.
Далее идет цикл, итерирующийся по строкам массива. В каждой строке также создается цикл, итерирующийся по элементам строки. Если элемент равен 0, увеличивается счетчик count. Если count достигает значения k, присваивается флагу значение true, выводится номер найденной строки и прерывается выполнение цикла (для поиска следующей строки с k нулями подряд). Если элемент не равен 0, счетчик count сбрасывается в 0.
В конце программы, если флаг flag равен false, то это означает, что строка с k нулями подряд не была найдена.
Надеюсь, это помогло!Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет