#include <iostream>
#include <limits>
int main() {
const int SIZE = 5;
int arr[SIZE];
std::cout << "Enter " << SIZE << " integers: ";
for (int i = 0; i < SIZE; i++) {
std::cin >> arr[i];
}
int smallest = arr[0];
int secondSmallest = std::numeric_limits<int>::max();
for (int i = 1; i < SIZE; i++) {
if (arr[i] < smallest) {
secondSmallest = smallest;
smallest = arr[i];
}
else if (arr[i] < secondSmallest && arr[i] != smallest) {
secondSmallest = arr[i];
}
}
if (secondSmallest == std::numeric_limits<int>::max()) {
std::cout << "There is no second smallest element in the array." << std::endl;
}
else {
std::cout << "The second smallest element in the array is " << secondSmallest << std::endl;
}
return 0;
}
Enter 5 integers: 9
6
3
12
4
The second smallest element in the array is 4
arr
of size SIZE
(which is set to 5 in this example), and prompts the user to enter SIZE
integers. It then uses a for
loop to iterate over each element of the array
, and stores the input in the corresponding element.smallest
and secondSmallest
, to the first element of the array arr[0]
and the maximum value of an integer
, respectively. It then uses another for
loop to iterate over each element of the array starting from the second element arr[1]
.arr[i]
, the program checks whether it is smaller than smallest
. If it is, the program updates secondSmallest
to the old value of smallest
, and smallest
to the new value of arr[i]
. If arr[i]
is not smaller than smallest
, the program checks whether it is smaller than secondSmallest
and not equal to smallest
. If it is, the program updates secondSmallest
to the new value of arr[i]
.secondSmallest
will contain the second smallest
element in the array. If there is no second smallest element in the array, secondSmallest
will be equal to std::numeric_limits<int>::max()
. Finally, the program outputs the second smallest element to the console using std::cout
.