Вопрос задан 01.07.2023 в 16:34. Предмет Информатика. Спрашивает Бакулин Данила.

Дана прямоугольная матрица из символов. Найти номер последней строки, все элементы в которой

одинаковы. Для решения задачи, не считая подзадачи ввода и вывода, не использовать параметрический цикл ДЛЯ, а только циклы ПОКА или ДО.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Ликсман Алёнка.

#include <iostream>

#include <vector>

using namespace std;

void solve(){

   int n,m;

   cin >> n >> m;

   vector<vector<char>> a(n, vector<char>(m));

   for(int i = 0; i < n; i++)

       for(int j = 0; j < m; j++)

           cin >> a[i][j];

   int i = 0,ans = -1;

   while(i < n){

       int cnt = 1,j = 1;

       while(a[i][j] == a[i][j-1] && j < m){

           cnt++;

           j++;

       }

       if(cnt == m)

           ans = i;

       i++;

   }

   if(ans == -1)

       cout << "No solution";

   else

       cout << ans + 1;

}

signed main(){

   solve();

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи с использованием цикла ПОКА или ДО, вы можете следовать следующему алгоритму:

  1. Считать входные данные: прямоугольную матрицу из символов.
  2. Инициализировать переменные: текущую строку как 1 и переменную для хранения индекса последней строки, все элементы в которой одинаковы, как -1.
  3. Пока текущая строка меньше или равна общему количеству строк в матрице, выполнить следующие шаги: a. Проверить, являются ли все элементы в текущей строке одинаковыми. Для этого можно сравнить каждый элемент текущей строки с первым элементом этой строки. Если хотя бы один элемент отличается, перейти к следующей строке. b. Если все элементы в текущей строке одинаковы, обновить индекс последней строки с одинаковыми элементами. c. Увеличить текущую строку на 1.
  4. Вывести индекс последней строки с одинаковыми элементами.

Пример псевдокода:

less
Считать матрицу из символов Текущая_строка = 1 Индекс_последней_строки = -1 Пока Текущая_строка <= Количество_строк_в_матрице: Все_одинаковые = Истина Первый_элемент = Матрица[Текущая_строка][1] Для каждого элемента в Матрица[Текущая_строка]: Если элемент ≠ Первый_элемент: Все_одинаковые = Ложь Прервать цикл Если Все_одинаковые: Индекс_последней_строки = Текущая_строка Текущая_строка = Текущая_строка + 1 Вывести Индекс_последней_строки

Этот алгоритм проверяет каждую строку матрицы и определяет, являются ли все элементы в строке одинаковыми. Если да, то он обновляет индекс последней строки с одинаковыми элементами. Как только цикл завершится, будет выведен индекс последней строки, удовлетворяющей условию.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос