Cześć,
mam problem z funkcją, która za zadanie ma minimalizować każdą wartość w wierszu o wartość minimalnego elementu.
Oto kod:
void minimumWiersz(int **mapa, int rozmiar, int dolneOszacowanie)
{
int minimum = 999999; // zmienna przechowująca minimum w wierszu
for (int i = 0; i < rozmiar; i++)
{
for (int j = 0; j < rozmiar; j++)
{
if (mapa[i][j] < minimum) // znajdowanie minimum w wierszu
minimum = mapa[i][j];
}
if (minimum =! 0) // odejmujemy wierszami tylko wtedy, gdy znalezione minimum jest > od 0
{
for (int k = 0; k < rozmiar; k++) // odejmowanie znalezionego minimum od całego wiersza
{
mapa[i][k] -= minimum;
}
}
dolneOszacowanie += minimum;
minimum = 999999;
}
}
Pod debuggerem odkryłem, że po wyjściu z pierwszej pętli wartość zmiennej **minimum **jest prawidłowa, zaś po wejściu do pętli kolejnej (ze zmienną iteracyjną k) wartość **minimum **zmienia się na 1. Dzieje się tak dla wszystkich wierszy w tablicy (tzn. za każdym razem odejmowana jest 1).
Przykładowa tablica wartości (po lewej przed, po prawej po przejściu algorytmu).
Z góry dziękuję za wszystkie odpowiedzi.
Pozdrawiam.