Вопрос задан 26.07.2023 в 09:26. Предмет Информатика. Спрашивает Михайлова Яна.

C++. Есть ли в одномерном массиве три подряд идущих одинаковых элемента

0 0
Перейти к ответам

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

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

Изи задача)

Исправлено:

#include <iostream>


using namespace std;


int main()

{

   cout << "Task 30257728!" << endl;


   const int N = 10;


   // создаем массив

   int m[N] = {1,1,1,4,5,6,7,8,9,3};


   // пробегаемся по массиву

   for (int i = 0; i < N; i++) {


       // смотрим только те, что идут до mLength - 2

       if (i < N - 2) {


           // если m[i] и + 1 и + 2 равны, то переключаем выходим из программы

           if (m[i] == m[i + 1] && m[i + 1] == m[i + 2]) {

               cout << "Array have dupes" << endl;

               return 0;

           }

       }


   }


   return 0;

}


старое--------------------------


Как-то так:

#include <iostream>


using namespace std;


int main()

{

   cout << "Task 30257728!" << endl;


   // созданем массив

   int m[] = {1,1,1,4,5,6,7,8,9,3,3,4,2,3,3};


   // считаем его размер

   int mLength = (sizeof(m)/sizeof(*m));


   // делаем переключатель

   bool haveDupes = false;


   // пробегаемся по массиву

   for (int i = 0; i < mLength; i++) {


       // смотрим только те, что идут до mLength - 2

       if (i < mLength - 2) {


           // если m[i] и + 1 и + 2 равны, то переключаем haveDupes

           if (m[i] == m[i + 1] && m[i + 1] == m[i + 2]) {

               haveDupes = true;

           }

       }


   }


   // если переключен haveDupes

   if (haveDupes) {

       cout << "Array have dupes" << endl;

   } else {

       cout << "Array haven't dupes" << endl;

   }


   return 0;

}


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

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

Ниже приведен пример кода на C++, который реализует данную проверку:

cpp
#include <iostream> bool hasThreeConsecutiveSameElements(int arr[], int size) { if (size < 3) { return false; // Если в массиве меньше трех элементов, то точно нет триплета } for (int i = 2; i < size; ++i) { if (arr[i] == arr[i - 1] && arr[i] == arr[i - 2]) { return true; // Нашли триплет } } return false; // Не нашли триплет } int main() { int arr[] = {1, 2, 2, 2, 3, 4, 5}; // Пример массива int size = sizeof(arr) / sizeof(arr[0]); if (hasThreeConsecutiveSameElements(arr, size)) { std::cout << "В массиве есть три подряд идущих одинаковых элемента." << std::endl; } else { std::cout << "В массиве нет триплета из одинаковых элементов." << std::endl; } return 0; }

Обратите внимание, что в данном примере функция hasThreeConsecutiveSameElements принимает массив и его размер. Она проходится по массиву с индекса 2 до конца и проверяет условие триплета. Если условие выполняется, то функция возвращает true, в противном случае - false. В main функции просто происходит вызов этой функции и вывод результата на экран.

0 0

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

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

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

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