# second smallest element in array using one loop

Sure! Here is an example of how you can find the second smallest element in an array using only one loop in C++:

```
#include <iostream>
using namespace std;
int main() {
int arr[] = {5, 2, 8, 1, 9};
int size = sizeof(arr) / sizeof(arr[0]);
int smallest = arr[0];
int secondSmallest = arr[1];
for (int i = 2; i < size; i++) {
if (arr[i] < smallest) {
secondSmallest = smallest;
smallest = arr[i];
} else if (arr[i] < secondSmallest && arr[i] != smallest) {
secondSmallest = arr[i];
}
}
cout << "The second smallest element is: " << secondSmallest << endl;
return 0;
}
```

Explanation:
1. Declare and initialize an array `arr`

with some values. In this example, we have an array with elements {5, 2, 8, 1, 9}.
2. Calculate the size of the array by dividing the total size of the array by the size of a single element using the `sizeof`

operator.
3. Initialize two variables `smallest`

and `secondSmallest`

with the first two elements of the array.
4. Iterate through the array starting from the third element (index 2) using a `for`

loop.
5. Inside the loop, compare the current element with the `smallest`

element. If the current element is smaller, update both `smallest`

and `secondSmallest`

accordingly.
6. If the current element is not smaller than the `smallest`

element, compare it with the `secondSmallest`

element. If it is smaller and not equal to the `smallest`

element, update `secondSmallest`

.
7. After the loop completes, the `secondSmallest`

variable will hold the second smallest element in the array.
8. Output the value of `secondSmallest`

using `cout`

.

This code finds the second smallest element in an array by iterating over the elements only once, using two variables to keep track of the smallest and second smallest elements encountered so far.