Мне нужно написать в C ++ полную логическую функцию, которая будет принимать целочисленный массив и его максимальный размер в качестве параметра и возвращать, есть ли в этом массиве какие-либо элементы со значением 0.
I 'Я даже не уверен, с чего начать.
Заранее спасибо.
Использование std::find
std::find
#include <algorithm> bool ContainsZero(int *arr, int size) { return std::find(arr, arr+size, 0) != (arr+size); }
bool checkFunction(int *myArray, int size) { for (int i=0; i < size; ++i) { if (myArray[i] == 0) return true; } return false; }
Вы говорите о чем-то подобном? Это будет выполнять итерацию по массиву и вернет true, если где-либо есть значение 0.
Как насчет чтения учебника по массивам в C ++ ?
bool TestForZero(int* myArray, int maxSize) { for(int ii=0; ii<maxSize; ++ii) if(myArray[ii] == 0) return true; return false; }
bool foo(int* array, int size) { int i; for (i = 0; i < size; i++) { if (array[i] == 0) { return true; } } return false; }
и для его вызова вы должны сделать что-то вроде:
int arr[] = { 1, 2, 3, 4, 0, 6}; foo(arr, 6);
bool hasZeroes(int * array, int len) { int zeroCount = 0; for (int i = 0; i < len; i++) { if (array[i] == 0) zeroCount++; } return zeroCount > 0; }
Это звучит очень похоже на домашнее задание, поэтому я просто дам вам концепции и позволю вам учиться.
Вам нужно использовать цикл for, проверять значение каждого элемента в массиве и возвращать true, если вы его нашли, в противном случае возвращать false после выхода из цикла.