diff --git a/lab_2/9_const-array.cpp b/lab_2/9_const-array.cpp new file mode 100644 index 0000000..916f3f0 --- /dev/null +++ b/lab_2/9_const-array.cpp @@ -0,0 +1,30 @@ +#include +#include +#include + +/* return the second-largest element of an array + * of N integer values (must contain at least two values) + */ +int second_of(const int N, const int* const x) { + assert(N >= 2); + int largest = x[0]; + + // smallest possible int value + int second_largest = std::numeric_limits::min(); + + for(int i = 1; i < N; i++) + if(x[i] > largest) { + second_largest = largest; + largest = x[i]; + } + else if(x[i] > second_largest) + second_largest = x[i]; + return second_largest; +} + +int main() { + constexpr int fixed_array_size = 5; + constexpr int x[fixed_array_size] = {4, 0, 6, 5, 2}; + const int t = second_of(fixed_array_size, x); + std::cout << t << "\n"; +}