C++: Есть ли число в массиве?

Задача: написать программу, которая заполняет массив из N элементов случайными числами и проверяет, есть ли в массиве введенное число

Сводится к написанию функции проверки есть ли оно.

bool isNumberInMassive(int k,int massive[],int size)
{
    for (int i=0;i<size;i++)
    {
        if (k==massive[i])
        {
            return true;
        }
    }
    return false;
}

Если пояснять, то тут просходит следущее: в функцию передается число, которое нужно проверить на наличие в массиве, массив и размерность массива. Далее пробегая в цикле проверяем, совпало ли значение элемента с нашим числом? Если да — возвращаем истину, по окончании же цикла (если нашел бы — выкинул бы истину) возвращаем ложь.

Использование этой функции. Вся программа:

[cpp]

#include «stdafx.h»
#include <locale.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
bool isNumberInMassive(int k,int massive[],int size);
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, «Russian»);
srand(time(0));
int N;
int k;
int j=0;
int numbers[100];
printf(«Введите число N:\n»);
scanf(«%d», &N);
for (int i=0; i<N; i++)
{
numbers[i] = rand();//заполняем массив случайными числами
printf(«%d «, numbers[i]);//выводим его
}
printf(«\n»);
printf(«Введите число для проверки:\n»);
scanf(«%d», &k);
isNumberInMassive(k,numbers,N) ? printf(«Содержится\n») : printf(«Не содержится\n»);
}
bool isNumberInMassive(int k,int massive[],int size)
{
for (int i=0;i<size;i++)
{
if (k==massive[i])
{
return true;
}
}
return false;
}

[/cpp]

После этого кода я хотел бы обратить внимание на строки

isNumberInMassive(k,numbers,N) ? printf(«Содержится\n») : printf(«Не содержится\n»); Это такой сокращенный вариант if. Синтаксис такой: bool_exp ? if_true : if_false.

В качестве булева выражения вызываем саму функцию, так как тип возвращаемого значения подходит, а в качестве действий просим писать в консоль.

Добавить комментарий