Dzień Dobry
Mam za zadanie napisania programu, który m.in. zamienia miejscami dwóch wybranych elementów oraz wyświetlanie dwóch najmniejszych liczb razem z indeksem. Napisałam obie funkcje tylko działają nieprawidłowo. Czy ktoś mógłby mi podpowiedzieć co robię źle?
void minimum(float tablica[])
{
float mini_1, mini_2;
mini_1 = tablica[0];
mini_2 = tablica[1];
int indeks_mini_1 = 0;
int indeks_mini_2 = 1;
if (mini_1 > mini_2)
{
mini_1 = tablica[1];
mini_2 = tablica[0];
indeks_mini_1 = 1;
indeks_mini_2 = 0;
}
for (int i = 0; i < ROZMIAR; i++)
{
if (tablica[i] < mini_2)
mini_2 = tablica[i];
indeks_mini_2 = i;
if (mini_1 > mini_2 || mini_1 == mini_2)
{
mini_1 = tablica[i];
mini_2 = tablica[1];
indeks_mini_2 = 1;
indeks_mini_1 = i;
}
int indeks_mini_1 = 0;
int indeks_mini_2 = 1;
for (int j = 1; j <= ROZMIAR; j++)
{
if (tablica[j] < tablica[indeks_mini_1])
indeks_mini_1 = j;
if (tablica[j] < tablica[indeks_mini_2])
indeks_mini_2 = j;
}
}
cout << "Element najmniejszy nr_1: " << mini_1 << endl;
cout << "Index najmniejszego elementa nr_1: " << indeks_mini_1 << endl;
cout << "Element najmniejszy nr_2: " << mini_2 << endl;
cout << "\n\tIndex najmniejszego elementa nr_2: " << indeks_mini_2 << endl;
}
void zamiana(float tablica[])
{
float a, b, c;
cout << "Podaj pierwsza liczbe do zamiany: ";
cin >> a;
cout << "Podaj druga liczbe do zamiany: ";
cin >> b;
for (int i = 0; i < ROZMIAR; i++)
{
if (tablica[i] == a || tablica[i] == b)
{
for (int j = 0; j < ROZMIAR; j++)
{
if (tablica[j] == b && i != j || tablica[j] == a && i != j)
{
c = tablica[j];
tablica[j] = tablica[i];
tablica[i] = c;
}
}
}
cout << tablica[i] << " ";
}
}