[ itf @ 06.04.2006. 16:37 ] @
Ima li tko vremena i znanja za rijesiti ovaj zadatak:

Za ucitani broj n, 1≤n≤30 ucitati niz cijelih brojeva i ispisati sve rastuce podnizove brojeva (jednodimenzionalna polja) dimenzije manje ili jednake (n/4)
Npr.:

n=4
Ucitano polje = {1,2,3,4}
Podnizovi
1
1, 2
1 ,3
1, 4
1, 2, 3
1, 2, 4
.
.
.
2
2, 3
.
.
.

[ itf @ 06.04.2006. 17:47 ] @
Mislim da sam uspio rješiti, no nisam siguran...

Code:
#include <stdio.h>
#define MAX 30

int main(){
    int n, i, j, k, polje[MAX];

    do{
        printf("Unesi n: ");
        scanf("%d", &n);
    }while(n<1 || n >30);

    for(i = 0; i < n; i++){
        printf("Unesi polje[%d]: ", i);
        scanf("%d", &polje[i]);
    }

    for(i = 0; i < n; i++){
        printf("\n\n%d\n", polje[i]);
        for(j = polje[i]+1;  j<polje[i] + 4; j++)
            printf("%d,%d\n", polje[i], j);
            for(j = polje[i]+1; j < polje[i] + 4; j++)
                for(k = j+1; k < polje[i]+4; k++)
                    printf("%d,%d,%d\n", polje[i], j, k);
    }
    return 0;
}


[Ovu poruku je menjao itf dana 06.04.2006. u 18:48 GMT+1]
[ NrmMyth @ 06.04.2006. 19:22 ] @
rekurzivno!
[ itf @ 07.04.2006. 13:26 ] @
Gdje ti ovdje vidiš rekurziju? Ajd molim te napiši kako si to zamislio.
[ NrmMyth @ 07.04.2006. 21:03 ] @
netestirano

Code:
int niz[MAXSIZE]; // polje brojeva
vector<int> vec;  // u njemu cuvas trenutni rastuci niz

void rek( int x ) // x - pozicija na nizu
{
    vec.push_back( niz[x] );

    *** ispisi vec ***

    for( int i = x + 1; i < duljina_niza; ++i )
        if( niz[i] > niz[x] )
            rek( int i );

    vec.pop_back();
};