Задача: написать программу, которая заполняет массив из 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.
В качестве булева выражения вызываем саму функцию, так как тип возвращаемого значения подходит, а в качестве действий просим писать в консоль.