From fcf38e62e8160f2c9901bdfd33760afed28beb8d Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sun, 22 Feb 2026 19:18:46 +0200 Subject: feat(Week01): Add solutions --- Week01/Exercise02/arrmath.cpp | 57 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Week01/Exercise02/arrmath.cpp (limited to 'Week01/Exercise02/arrmath.cpp') diff --git a/Week01/Exercise02/arrmath.cpp b/Week01/Exercise02/arrmath.cpp new file mode 100644 index 0000000..d518134 --- /dev/null +++ b/Week01/Exercise02/arrmath.cpp @@ -0,0 +1,57 @@ +#include "arrmath.h" + +int sum(const int* elements, unsigned length) { + if (elements == nullptr || length == 0) + return 0; + + int sum = 0; + + for (unsigned i = 0; i < length; ++i) + sum += elements[i]; + + return sum; +} + +double average(const int* elements, unsigned length) { + if (elements == nullptr || length == 0) + return 0.0; + + return (double)sum(elements, length) / length; +} + +int largest(const int* elements, unsigned length) { + if (elements == nullptr || length == 0) + return 0; + + int largest = elements[0]; + for (unsigned i = 1; i < length; ++i) + if (elements[i] > largest) + largest = elements[i]; + + return largest; +} + +int smallest(const int* elements, unsigned length) { + if (elements == nullptr || length == 0) + return 0; + + int smallest = elements[0]; + for (unsigned i = 1; i < length; ++i) + if (elements[i] < smallest) + smallest = elements[i]; + + return smallest; +} + +unsigned findIndex(const int* elements, unsigned length, int elementToSearch) { + if (elements == nullptr || length == 0) + return length; + + for (unsigned i = 0; i < length; ++i) + if (elements[i] == elementToSearch) + return i; + + // Коректно е да връщаме length вместо 0, защото + // 0 може да е валиден индекс в масива с елементи + return length; +} -- cgit v1.3.1-23-gd82d