Konkrétne by som potreboval pomôcť z rekurziou, nejako si neviem nájsť v čom robím chybu. Program by mal (zatiaľ) generovať 7 lubovoľných čísel (6 čísel + 1 číslo ako v športke) a tie čísla majú byť každé rôzne. Ďakujem za pomoc.
int main(int argv,char *argc[])
{
int i,j,tah[7];
clrscr();
randomize();
generuj(tah,i,j);
for (i=0;i<7;i++) printf("%d ",tah);
getch();
return 0;
}
pozn. random(7) a nie random(49), tam mám preto aby sa to dalo ľahšie kontrolovať, lebo pri 7 číslach musí 100-percentne vybrať každé raz aby to fungovalo, tak ako má...
qwixt, konyk87: Ďakujem obom za rady. K+ Problém sa mi podarilo vyriešiť len mám k tomu malé pripomienky:
qwixt: Tvoja verzia je asi lepšia, len funguje(aspoň podľa mňa) len rovnaký počet prvkov poľa a čísel z ktorých má vyberať, ale ja som potreboval 49 čísel a tých 7 tam bolo len kvôli kontrole, lebo zo 7 musí vybrať všetkých 7, čiže je veľká šanca ak to robí chybu, že ju vidno hneď. Takže som použil konykovu verziu.
konyk87: C je nemá typ boolean. Ale inak pôvodne som to mal podobne, len som pred cyklom nepriraďoval tej premennej true alebo 1 a v tom som mal tú chybu.
Pri tom gwixtovom príklade si urobíš pole dlhé 49 prvkov. Naplníš ho číslami 1-49. Pomocou toho algoritmu, čo tam má gwixt to pole premiešaš a potom použiješ prvých 7 číslic.
Nejdem otvárať druhú tému, veď vlastne ešte stále je to ten istý program, aj cyklus len tento raz zadávam čísla z klávesnice a musí byť každé z tých šiestich iné...len problém je v tom, že v cykle mi načíta 7 čísel miesto šiestich, prvý krát načítava číslo dvakrát a ja neviem prečo... Ďakujem za pomoc
konyk87: Ďakujem funguje to. Ale keďže sa tam menila riadiaca premenná cyklu v cykle, tak to nebolo celkom najvhodnejšie riešenie a po porade s cvičiacim som napísal niečo takéto :