Schemat blokowy algorytmu

0

Witam. Czy ktoś mógłby mi pomóc zrobić schemat blokowy do tego zadania ?

Treść jego jest następująca:

9.Dla tablicy o wymiarze n i elementach będących liczbami całkowitymi, proszę napisać
algorytm:
9.1 - wyznaczającą liczbę wystąpień minimalnego elementu w tablicy.
9.2 - wyznaczającą maksymalną odległość między elementami o
minimalnej wartości(uwaga: minimalna wartość w tablicy jest jedna, ale
może wystąpić kilkakrotnie).
Np. dla tablicy {1, 4, 1, 1, 7, 2, 3} minimalna wartość wynosi 1 i występuje 3 razy.
Maksymalna odległość miedzy nimi wynosi 3 (różnica między indeksami ostatniego
i pierwszego wystąpienia wartości 1). Jeśli wartość minimalna występuje
jednokrotnie to maksymalna odległość wynosi 0.

0
  1. Znajdź min
  2. Policz wystąpienia min w tablicy
  3. Iteruj tablicę, odleglosc = -1, przy pierwszym natrafieniu na min =0 i zaczynasz nabijać licznik, przy natrafieniu na najmniejszą wartość ustawiasz odleglosc = licznik, licznika nie zerujesz

Wiem, że chodziło Ci o coś innego, ale te kroki musisz przedstawić w schemacie

0

Przekombinowałeś.
W pierwszym kroku znajdujemy min, w drugim, lecimy po tablicy, liczymy wystąpienia min i zapamiętujemy pozycję pierwszego i ostatniego wystąpienia min.

0

No i po co 3 pętle zamiast jednej? Pseudokod:

void helpful_name(int array[], int size)
{
    int firstpos = 0;
    int lastpos = 0;
    int count = 0;
    int min = array[0];
    int i;
    for (i = 0; i < size; ++i) {
        if (array[i] < min) {
            min = array[i];
            count = 1;
            firstpos = i;
            lastpos = i;
        } else if (array[i] == min) {
            count += 1;
            lastpos = i;
        }
    }
    printf("%d %d %d\n", min, count, lastpos - firstpos);
}

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