• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyznaczanie odległości między elementami tablicy.

VPS Starter Arubacloud
0 głosów
666 wizyt
pytanie zadane 16 stycznia 2019 w Algorytmy przez 0_Stalker Nowicjusz (150 p.)
Witam, mam mały problem muszę zrobić zadanko a niestety nie wiem jak się za nie zabrać.
Mając tablice TAB = [8 3 8 2 6 4 8] mam wyznaczyć maksymalny element tablicy i zliczyć ilość występowania (to umiem) a następnie wyznaczyć minimalną odległość między elementami o maksymalnej wartości (tego już niestety nie umiem).  

Przykład: W podanej tablicy maksymalny element to 8 i występuje 3 razy, a minimalna odległość między maksymalnymi elementami wynosi 2 (indeksy) -  [8(od tego) 3(pierwszy index) 8(drugi index) 2 6 4 8]  

Jeżeli ktoś umiałby pomóc będę bardzo zobowiązany :) (najlepiej C++, C# albo schemat blokowy)
Pozdrawiam, dzięki

1 odpowiedź

+1 głos
odpowiedź 16 stycznia 2019 przez jeremus Maniak (59,720 p.)
wybrane 16 stycznia 2019 przez 0_Stalker
 
Najlepsza
może coś takiego :
to przykładowy algorytm - przy założeniu że masz już tę maksymalną liczbę
jeśli jest tylko jedna wartość maksymalna to odległość - 0 ?
jeśli tak to dodaj warunek  jeśli o==size_tab to o=0

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    int size_tab=13;
    int maksymalna_liczba=8;
    int t[size_tab]={1,3,8,3,2,7,4,6,4,8,8,8,3};
    int o=size_tab;
    int i1=-size_tab;
    for ( int i=0;i<size_tab;i++)
    {
        if ( t[i] == maksymalna_liczba )
        {
            if ( i-i1 < o )
            {
                o=i-i1;

            }
            i1=i;
        }

    }

    cout << o << endl;
    return 0;
}

 

komentarz 16 stycznia 2019 przez 0_Stalker Nowicjusz (150 p.)
tak jeśli występuję jeden raz to ma zwracać 0.

Dziękuję za pomoc :D
komentarz 16 stycznia 2019 przez 0_Stalker Nowicjusz (150 p.)

@jeremus, A gdzie dokładnie mam wstawić tego if'a "o==size_tab" ???

 

komentarz 16 stycznia 2019 przez jeremus Maniak (59,720 p.)
tutaj :   
 if ( o == size_tab ) o=0;
    cout << o << endl;

 

Podobne pytania

0 głosów
3 odpowiedzi 222 wizyt
pytanie zadane 31 maja 2020 w C i C++ przez Dezmonths Początkujący (310 p.)
0 głosów
1 odpowiedź 1,654 wizyt
pytanie zadane 14 stycznia 2019 w PHP przez Krzysztof Narczynski Początkujący (370 p.)
0 głosów
1 odpowiedź 486 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...