Program wykorzystujący funkcję lidera

0

Cieplutko proszę o pomoc, ponieważ muszę odesłać ten projekt do jutra. W skrócie: Program poszukuje lidera w wylosowanej tablicy. Tutaj podsyłam mój kod, niestety pojawia się błąd w linijce 44. Serdecznie proszę o rozwiązanie mojego problemu wykorzystując funkcje, które ja użyłem, bo tylko takie przerabiałem w szkole.

#include <algorithm>
#include <cstdlib>
#include <ctime>

using namespace std;

const int N=20;

int SzukajLidera(int A[])
{
    int i, kandydat, ile=0;
    sort(A,A+N);
    kandydat=A[N/2];
    for (i=0;i<N;i++)
        if (A[i]==kandydat) ile++;
    if (ile>N/2) return kandydat;
    else return -1;
}

void Losuj(int A[])
{
    int x=rand()%100;
    for (int i=0;i<N;i++)
        if (rand()%2==0) A[i]=rand()%100;
        else A[i]=x;
}

void Wypisz(int A[])
{
    for (int i=0;i<N;i++) cout<<A[i]<<" ";
    cout<<endl;
}

int main()
{
    int A[N];
    srand(time(NULL));
    Losuj(A);
    Wypisz(A);
}
int kandydat;

int SzukajLidera (int A[kandydat]) { return -1*kandydat;}
return 0; ```
3

no nie dziwię się że nie działa.

int main()
{
    int A[N];
    srand(time(NULL));
    Losuj(A);
    Wypisz(A);
}
int kandydat;

int SzukajLidera (int A[kandydat]) { return -1*kandydat;}
return 0; `

ciężko mi powiedzieć co tu masz na myśli. return 0 powinien być w main int kandydat to zwykły int a to szukajlidera to nie wiem o co chodzi.

https://mattomatti.com/pl/a49

1
  1. Klamry przy main masz źle.
  2. Funkcja SzukajLidera jest zadeklarowana najpierw w linijce dziesiątej, a potem ją chyba próbujesz redeklarować w czterdziestej czwartej? W każdym razie, jeśli chciałeś mieć jej przeciążenie na inty (zamiast tablicę intów), to nie możesz tego zrobić przez int A[kandydat], tylko np. przez int kandydat.

Pewnie jest więcej problemów, ale to te najbardziej powiązane z Twoim pytaniem…

1

Jaka jest według ciebie definicja "lidera"?
Bo według mojej wiedzy, "lider" to wartość, która występuje co najmniej w połowie przypadków, a twój kod robi coś innego.
Czy w specyfikacji problemu masz zdefiniowane, że lider zawsze występuje, jeśli nie to co ma być zwrócone jeśli nie występuje?
Podejrzewam, że miałeś użyć algorytmy Heavy Hiter, który nie pozwala na stwierdzanie, że lider występuje, ale jeśli występuje, to daje gwarancję jego odnalezienia.

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