Problem z zadaniem z tablic dwuwymiarowych

0

Witam!
Robię właśnie kurs C++ i muszę napisać program który przeszuka tablicę dwuwymiarową i zliczy wartości które są mniejsze od 50 % średniej arytmetycznej wszystkich wartości lub większe od 150% wartości arytmetycznej. Nie wiem czemu cały czas program zwraca liczbę o 50 za dużą. Podejrzewam że może coś jest źle z typami zmiennych srednia, procent, procenty

int rtg_check( unsigned short rtg_picture[25][25] )
{
    int suma = 0;
    for (int i = 0; i < 25; i++)
    {
        for (int z = 0; z < 25; z++)
        {
            suma += rtg_picture[i][z];
        }
    }
    float srednia = sum / 625;
    float procent = 1.5 * srednia;
    float procenty = 0.5 * srednia;
    int licznik = 0;
     for (int i = 0; i < 25; i++)
    {
        for (int z = 0; z < 25; z++)
        {
            
            if (rtg_picture[i][z] >= procent)
            licznik++; 
            if(rtg_picture[i][z] <= procenty)
            licznik++;
        }
    }
    return licznik;
}

1

float srednia = sum / 625 nie jest tym co Myślisz. sum i 625 to integery (625 - literał), więc najpierw wykonywane jest w nich dzielenie i Dostajesz liczbę obciętą do wartości całkowitej.
float srednia = 3 / 2
srednia = 1.

0
lion137 napisał(a):

float srednia = sum / 625 nie jest tym co Myślisz. sum i 625 to integery (625 - literał), więc najpierw wykonywane jest w nich dzielenie i Dostajesz liczbę obciętą do wartości całkowitej.
float srednia = 3 / 2
srednia = 1.

Dzięki, teraz już działa dobrze :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1