@Puj

Где ошибка в коде?

При компиляции постоянно выводится что этого числа нет в массиве, какое либо число я не брал бы. Что делать? Скажите пожалуйста
#include <iostream>
using namespace std;

int main()
{
    srand(time(NULL));
    
    const int SIZE = 5;
    
    int arr[SIZE];
    
    for (int i = 0; i < SIZE; i++)
    {
      arr[i] = rand()%10;
    }
    
    
    int value;
    cout << "Введите ваше число: " << endl;
    cin >> value;
    
    for (int i = 0; i < SIZE; i++)
    {
      if (value == arr[i])
      {
        cout << "Ваше число есть в массиве!" << endl;
        break;
      }
      
      else
      {
        cout << "Вашего числа нет в массиве!" << endl;
        break; 
      }
    }
}
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
Как-то так
bool found = false;
for (int i = 0; i < SIZE; i++)
{
      if (value == arr[i])
      {
        found = true;
        break;
      }     
}
if(found)
  cout << "Ваше число есть в массиве!" << endl;
else
  cout << "Вашего числа нет в массиве!" << endl;
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
Прервываете после проверки первого элемента, а не всех
Ответ написан
Комментировать
evsmusic
@evsmusic
break уберите в блоке else и все, а ошибку "Вашего числа нет в массиве!" уже писать при if( ! found ) {...} вне цикла
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы