Program nie działa dla ujemnych elemntów

0

Siemka, mam do napisania taki program gdzie za pomocą funkcji przypisze do odpowiednich indeksów jakieś wartości a potem program obliczy ich sume srednia jak i ekstrema. Wszystko działa poprawnie do momentu wpisania wartości ujemnych, wtedy ekstrema minimalne lub maksymalne wskazują złą wartość... Poniżej wklejam kod i prosiłbym o pomoc:

#include <iostream>

using namespace std;

void wczytaj(int tablica[], int rozmiar){
    int element;
    for(int i=0; i<rozmiar; i++){
        cout<<"Podaj element dla tablicy o indeksie ["<<i<<"]: ";
        cin>>element;
        tablica[i]=element;
    }
}
void wyswietl(int tab[],int rozmiar){
    for(int i=0; i<rozmiar; i++){
        cout<<"Element tablicy o indeksie ["<<i<<"]: "<<tab[i]<<endl;
    }
}
float suma(int tab[],int rozmiar){
    float suma=0;
    for(int i=0; i<rozmiar; i++){
        suma=suma+tab[i];
    }
    return suma;
}
float srednia(int tab[],int rozmiar){
    float Srednia=0;
    Srednia=suma(tab,rozmiar)/rozmiar;
    return Srednia;
}
int maks(int tab[],int rozmiar){
    int maksimum=0;
    for(int i=0; i<rozmiar; i++){
        tab[0]=maksimum;
        if(tab[i]>maksimum) maksimum=tab[i];
    }
    return maksimum;
}
int mini(int tab[],int rozmiar){
    int minimum=0;
    for(int i=0; i<rozmiar; i++){
        tab[0]=minimum;
        if(tab[i]<minimum) minimum=tab[i];
    }
    return minimum;
}
int main()
{
    const int MAX = 1000;
    int tablica[MAX], Size;
    cout<<"Podaj ilosc indeksow: ";
    cin>>Size;
    wczytaj(tablica, Size);
    wyswietl(tablica,Size);
    cout<<"Suma: "<<suma(tablica,Size)<<endl;
    cout<<"Srednia: "<<srednia(tablica,Size)<<endl;
    cout<<"Maksymalna wartosc elemntu tablicy: "<<maks(tablica,Size)<<endl;
    cout<<"Minimalna wartosc elemntu tablicy: "<<mini(tablica,Size)<<endl;
    return 0;
}
1

Wskazówka.
Rozpisz sobie na kartce wartości:
maksimum

tab[0]
tab[1]
tab[2]
tab[3]

z wybranymi przez siebie wartościami (ujemnymi).

Następnie przejedz palcem po swoim kodzie i wpisuj, jak zmieniają się wartości.
Przypisujesz coś do maksimum - skreśl poprzednią wartość i wpisz tą nową.
Przypisujesz coś do tab[0] - tak samo.
Lecisz po tym, co masz w funkcji aż do return. Zobaczysz, co tam Ci się pozmieniało.
Powinno to pomóc Ci w znalezieniu błędu.

1
int maks(int tab[],int rozmiar){
    int maksimum = tab[0];
    for(int i=1; i<rozmiar; i++){
        if(tab[i]>=maksimum) maksimum=tab[i];
    }
    return maksimum;
}

int mini(int tab[],int rozmiar){
    int minimum= tab[0];
    for(int i=1; i<rozmiar; i++){
        if(tab[i] <= minimum) minimum=tab[i];
    }
    return minimum;
}
0

Oki naprawione, dziekuje bardzo za pomoc

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