I have an array of 10 integers. I want to display them as the title says. I've tried to keep track of the indexes, but that seems way too inefficient and ||rookie like||. I was wondering if you guys had any tips on how to proceed, thanks in advance.
I'm doing the code to input and output both exactly as specified, so expect shitty code.
#include <iostream>
#include <limits>
int main()
{
int arr[10] = {0};
for(int i = 0; i < 10; ++i)
{
std::cin >> arr[i];
}
int max = std::numeric_limits<int>::max();
int min1 = max, min2 = max, min3 = max;
int index[3] = {0};
for(int i = 0; i < 10; ++i)
{
int atual = arr[i];
if(atual < min1)
{
index[0] = i;
min3 = min2;
min2 = min1;
min1 = atual;
}
else if(atual < min2)
{
index[1] = i;
min3 = min2;
min2 = atual;
}
else if(atual < min3)
{
index[2] = i;
min3 = atual;
}
} // 12 23 13 - possible swaps
if(index[0] > index[1])
{
std::swap(min1, min2);
}
if(index[0] > index[2])
{
std::swap(min1, min3);
}
else
{
std::swap(min1, min2);
}
std::cout << min1 << std::endl;
std::cout << min2 << std::endl;
std::cout << min3 << std::endl;
return 0;
}```