Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Funkcja rekurencyjna

Ostatnio zmodyfikowano 2012-11-21 21:17
Autor Wiadomość
Danio717
Temat założony przez niniejszego użytkownika
Funkcja rekurencyjna
» 2012-11-21 20:55:27
cześć! mam problem z zadaniem z zeszłorocznej matury rozszerzonej.
tutaj link:
http://www.cke.edu.pl/images/stories /00000000000000002012_matura2012/infor/a1_pr.pdf zadanie pierwsze

Napisałem kod, który nie daje nie do końca poprawne wyniki, rozkminiam już którąś godzinę i nie mogę znaleźć błędu :) Proszę o pomoc.

C/C++
#include <iostream>
using namespace std;

int funkcja( int i, int n, int tablica[] )
{
    if( i == n )
         return n;
    else
    { int j;
        j = funkcja( i + 1, n, tablica );
        if( tablica[ i ] < tablica[ j ] )
             return i;
        else
             return j; }
}

int main()
{
    int tablica[ 10 ], n = 0, i = 0;
    cin >> n;
    cin >> i;
    tablica[ 0 ] = 5;
    tablica[ 1 ] = 1;
    tablica[ 2 ] = 8;
    tablica[ 3 ] = 9;
    tablica[ 4 ] = 7;
    tablica[ 5 ] = 2;
    tablica[ 6 ] = 3;
    tablica[ 7 ] = 11;
    tablica[ 8 ] = 20;
    tablica[ 9 ] = 15;
    cout << "\n" << funkcja( i, n, tablica );
    cin.get();
    cin.get();
    return 0;
}
P-69666
Savail
» 2012-11-21 21:15:36
Nie wziąłeś chyba pod uwagę faktu, że w tym zadaniu numeracja tablicy zaczyna się od 1 a nie od 0. Czyli np.
tablica[ 1 ] = 5;
 powinno być
P-69667
Danio717
Temat założony przez niniejszego użytkownika
» 2012-11-21 21:17:59
Próbowałem to rozgryźć ale mam problem z interpretacją tego. Jeśli w kodzie umieszczałem linijkę n-=1 (żeby numeracja tablic zaczynała się od zera) wynik był poprawny dla i==7, dla pozostałych z zadania nie.

Zapomniałem o odpowiedziach do zadania, gdyby ktoś chciał porównać :)
http://www.edulandia.pl/matura/1,120133,12074757,Matura_2012__informatyka__poziom_rozszerzony__kryteria.html

Edit:

Czyli w definicji dajemy tablica[11]?

Edit 2:

I wyszło :) Teraz spróbuję to zrozumieć :) Dzięki kolego!
P-69668
« 1 »
  Strona 1 z 1