Zbędna wartość

0

Otóż przy wykonywaniu zadania z kursu napotkałem mały błąd. Otóż mam takie zadanie:
Napisz program który wykona wszystkie poniższe kroki w podanej kolejności:
Losuje 10 liczb z przedziału od 10 do 30 włącznie i zapisuje je do tablicy;
Wypisuje 10 wylosowanych liczb od początku do końca;
Wypisuje 10 wylosowanych liczb od końca do początku;
Znajduje najmniejszą oraz największą wylosowaną liczbę.
Wypisuje najmniejszą i największą wylosowaną liczbę.
Program nie może używać pętli innych niż pętla for.
Kod, który napisałem:

 
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

void wylosujLiczby(int tablica[], int ile)
{
    srand(time(NULL));
    for(int i=0; i<ile; i++)
    {
        tablica[i] = (rand()%21)+10;
    }
}

void wypiszTablice(int tablica[], int ile)
{
    for(int i=0; i<ile; i++)
    {
        cout << tablica[i] << " ";
    }
    cout << endl;
}

void wypiszTabliceOdTylu(int tablica[], int ile)
{
    for(int i=10; i>=0; i--)
    {
        cout << tablica[i] << " ";
    }
}
int znajdzMinimum(int tablica[], int ile)
{
    int max = tablica[0];
    for(int i=0; i<ile; i++)
    {
        if(tablica[i]<max)
        {
            max = tablica[i];
        }
    }
    return max;
}

int znajdzMaksimum(int tablica[], int ile)
{
    int max = tablica[0];
    for(int i=0; i<ile; i++)
    {
        if(tablica[i]>max)
        {
            max = tablica[i];
        }
    }
    return max;
}

void wypiszMinMax(int min, int max)
{
    cout << endl << "Najmniejsza liczba to: " << min;
    cout << endl << "Najwieksza liczba to: " << max;
}

int main()
{
    int tablica[ 10 ];
    wylosujLiczby( tablica, 10 );
    wypiszTablice( tablica, 10 );
    wypiszTabliceOdTylu( tablica, 10 );
    int iMin = znajdzMinimum( tablica, 10 );
    int iMax = znajdzMaksimum( tablica, 10 );
    wypiszMinMax( iMin, iMax );
    return 0;
}

Otóż działa wszystko jak należy lecz między liczbami z tablicy wypisanymi normalnie i od końca pojawia się liczba 74 i nie mam pojęcia jak wyeliminować ten błąd :/

0

for(int i=10; i>=0; i--) jakie wygeneruje Ci to wartości zmiennej i? BTW jak piszesz w C++ to powinieneś to zamknąć w klasie, lub co najmniej użyć wektora.

1

Nie ma takiego czegoś jak tablica[10], a się do tego elementu odwołujesz. ;-)

Edit: Kolega mnie ubiegł...

0

No właśnie tylko o to chodzi, że ja się dopiero uczę c++ a do klas i wektorów jakiś tam jeszcze nie doszedłem i nie mam o tym pojęcia. To jak mam wyświetlić zawartość tablicy od końca?

1

Dokładnie tak jak to robisz tylko nie zaczynaj od indeksu 10 (bo takiego nie ma) tylko od indeksu 9. Inaczej mówiac w petli for przypisz do zmiennej i wartość 9, a nie 10.

0

Faktycznie. Ale się palnąłem. Jak robię wypełnianie tablicy danymi to zawsze o tym pamiętam a tu jak na złość zapomniałem :P Dzięki za ludzkie wytłumaczenie :)

1

Ludzi o czym wy piszecie, żadne 9 tylko ile-1.

0

Najważniejsze, że wszyscy wiedzą o co chodzi :)

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