zamieszanie z losowaniem w totolotku

0

Witam, jestem poczatkujacym programista, pisze projekt na zaliczenie I semestru <projekt niby="niby" banalny="banalny">, totolotka. Prawie już jest gotowy ale cos jest nie tak w mojej funkcji losującej np. w dużym lotku gdy komputer kaze podac 6 liczb to ja podaje np. 12,2,3,4,5 i gdy na końcu podam 1 to on traktuje to jako początek wpisywania i musze dalej podac 6 liczb, jakichkolwiek bez jedynki na końcu. Ktos moglby rzucic na to okiem? i powiedzieć mi co wypadaloby zmienić?
Wklejam caly kod programu funkcja losujaca jest na samym pocztku
#include <stdio.h>
#include <stdlib.h>

int losowanie(int ilosc, int zakres)
{
int i,spr,j,k,l,liczby[ilosc];

for( i=1 ;i<=ilosc;)
{
k =1+rand()%zakres;
spr=0;
for(j=1; j<i; j++)
if(liczby[j]==k)
spr=1;
if(spr)
i--;
else
{
liczby[i] = k;
i++;
}

}

for(l=1; l<=ilosc; l++)
printf("%d ",liczby[l]);
}

int multi()
{
int multi[10],i;
srand((unsigned)time(NULL));
printf("Podaj 10 roznych od siebie liczb z zakresu od 1 do 80\n\n");

        for(i=1; i<=10; i++) {
        scanf("%d",&multi[i]);}
     


printf("Wylosowane liczby to: \n\n");
losowanie(20,80);

{
    system("PAUSE");
}

}
int multichybil()
{

printf("\n\nZa chwile komputer wylosuje za Ciebie 10 sposrod 80 liczb \n\n");
printf("\n\nOto 10 liczb, ktore wytypowal za Ciebie komputer \n\n");

losowanie(10,80);

printf("\n\nOto wyniki losowania\n\n");
losowanie(20,80);

{
    system("PAUSE");
}

}
int multiwybor()
{
int i;
printf("1 Chybil-trafil\n\n2.Wytypuj liczby\n\n3.Cofnij do menu\n");
i=getchar();
switch(i)
{
case'1' : multichybil();break;
case'2' : multi();break;
case'3' : menu();break;
}

           system("cls");
        multiwybor();
        system("PAUSE");

}

int duzy()
{
int i,duzy[6];
srand((unsigned)time(NULL));

	printf("Podaj szesc roznych od siebie liczb z zakresu od 1 do 49\n\n");

        for(i=1; i<=6; i++) {
        scanf("%d",&duzy[i]);}

       
  


        printf("Wylosowane liczby to: \n\n");
        losowanie(6,49);

        printf("\n");
        system("PAUSE");
	}



	int duzychybil()
	{

	    printf("Za chwile komputer wylosuje za Ciebie 6 z 49 liczb\n\n");
	    printf("Oto 6 liczb, ktore wytypowal za Ciebie komputer\n\n");
	    losowanie(6,49);

	    printf("\n\nOto wyniki losowania\n\n");
	    losowanie(6,49);
	    

{
system("PAUSE");
}
}

	int duzywybor()
	{


	int i;

	    printf("1 Chybil-trafil\n\n2.Wytypuj liczby\n\n3.Cofnij do menu\n");
	    i=getchar();
	    switch(i)
	    {
	        case'1' : duzychybil();break;
	        case'2' : duzy();break;
	        case'3' : menu();break;
	    }

           system("cls");
        duzywybor();
        system("PAUSE");
        }

int szczesliwy();numerek()
{
int szczesliwy[4],numerek[1],i;

printf("Podaj cztery, rozne od siebie liczby od 1 do 45.\n\n");

        for(i=1; i<=4; i++) {
        scanf("%d",&szczesliwy[i]);}

printf("Teraz nastapi losowanie czterech sposrod czterdziestu pieciu liczb.\n\n");

printf("Wylosowane liczby to: \n");
     losowanie(4,45);
     printf("\n\nPodaj jedna liczbe z zakresu od 1 do 36\n\n");
        for(i=1 ;i<=1; i++){
            scanf("%d",&numerek[i]);
        }
        printf("Teraz nastapi losowanie jednej liczby.\n\n");
        printf("Twoim Szczesliwym Numerkiem jest liczba:\n\n");
        losowanie(1,36);
       
     {

         system ("PAUSE");

     }
}

int szczesliwychybil()
{
     printf("Za chwile komputer wylosuje za Ciebie 4 z 45 liczb oraz jedna - Twojego Szczesliwego Numerka\n\n");
	    printf("Oto 4 liczby, ktore wytypowal za Ciebie komputer\n\n");
	    losowanie(4,45);
	    printf("\n\nOto 1 liczba, ktora komputer wytypowal za Ciebie\n");
	    losowanie(1,36);

	    printf("\n\nWyniki losowania czterech liczb\n\n");
	    losowanie(4,45);
	    printf("\n\noraz wylosowany Twoj Szczesliwy Numerek\n ");
	    losowanie(1,36);
	    
	    {
	        system("PAUSE");
	    }
}

int szczesliwywybor()
{

    int i;

	    printf("1 Chybil-trafil\n\n2.Wytypuj liczby\n\n3.Cofnij do menu\n");
	    i=getchar();
	    switch(i)
	    {
	        case'1' : szczesliwychybil();break;
	        case'2' : szczesliwy;numerek();break;
	        case'3' : menu();break;
	    }

           system("cls");
        szczesliwywybor();
        system("PAUSE");
        }

int menu()
{
int c;

printf("========================================================================\n\n");
printf("				  LOTTO\n\n");
printf("			Copyright by Aleksander Romanowski\n\n");
printf("========================================================================\n\n");
printf("1.Duzy lotek\n2.Multi lotek\n3.Twoj Szczesliwy Numerek\n4.Wyjscie\n");
	c=getchar();
	switch(c)
	{
	case'1': duzywybor();break;
    case'2': multiwybor();break;
    case'3': szczesliwywybor();break;
	case'4': exit(0); break;
	}

	system("cls");
	menu();

}

int main()
{
srand(time(NULL));
menu();

}

0

Tak to zrobiłeś, że podajesz pierwszą, potem enter, następna -> enter i tak 6 razy.
Zrób coś z tym kodem.

0

Jak już się uczysz programować to rób to dobrze od samego początku, spójrz na mój kod i porównaj go ze swoim, wyciągnij wnioski, który kod jest czytelniejszy:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int menu();

int losowanie(int ilosc, int zakres)
{
    int i,spr,j,k,l,liczby[ilosc];
    for( i=1 ;i<=ilosc;) k =1+rand()%zakres;
    spr=0;
    for(j=1; j<i; j++) if(liczby[j]==k) spr=1;
    if(spr) i--;
    else
    {
        liczby[i] = k;
        i++;
    }
    for(l=1; l<=ilosc; l++)printf("%d ",liczby[l]);
}
int multi()
{
    int multi[10],i;
    srand((unsigned)time(NULL));
    printf("Podaj 10 roznych od siebie liczb z zakresu od 1 do 80\n\n");
    for(i=1; i<=10; i++) scanf("%d",&multi[i]);
    printf("Wylosowane liczby to: \n\n");
    losowanie(20,80);
    system("PAUSE");
}
int multichybil()
{
    printf("\n\nZa chwile komputer wylosuje za Ciebie 10 sposrod 80 liczb \n\n");
    printf("\n\nOto 10 liczb, ktore wytypowal za Ciebie komputer \n\n");
    losowanie(10,80);
    printf("\n\nOto wyniki losowania\n\n");
    losowanie(20,80);
    system("PAUSE");
}
int multiwybor()
{
    int i;
    printf("1 Chybil-trafil\n\n2.Wytypuj liczby\n\n3.Cofnij do menu\n");
    i=getchar();
    switch(i)
    {
        case'1' : multichybil();break;
        case'2' : multi();break;
        case'3' : menu();break;
    }
    system("cls");
    multiwybor();
    system("PAUSE");
}
int duzy()
{
    int i,duzy[6];
    srand((unsigned)time(NULL));
    printf("Podaj szesc roznych od siebie liczb z zakresu od 1 do 49\n\n");
    for(i=1; i<=6; i++) scanf("%d",&duzy[i]);
    printf("Wylosowane liczby to: \n\n");
    losowanie(6,49);
    printf("\n");
    system("PAUSE");
}
int duzychybil()
{
    printf("Za chwile komputer wylosuje za Ciebie 6 z 49 liczb\n\n");
    printf("Oto 6 liczb, ktore wytypowal za Ciebie komputer\n\n");
    losowanie(6,49);
    printf("\n\nOto wyniki losowania\n\n");
    losowanie(6,49);
    system("PAUSE");
}
int duzywybor()
{
    int i;
    printf("1 Chybil-trafil\n\n2.Wytypuj liczby\n\n3.Cofnij do menu\n");
    i=getchar();
    switch(i)
    {
        case'1' : duzychybil();break;
        case'2' : duzy();break;
        case'3' : menu();break;
    }
    system("cls");
    duzywybor();
    system("PAUSE");
}
int nszczesliwy()
{
    int szczesliwy[4],numerek[1],i;
    printf("Podaj cztery, rozne od siebie liczby od 1 do 45.\n\n");
    for(i=1; i<=4; i++)scanf("%d",&szczesliwy[i]);
    printf("Teraz nastapi losowanie czterech sposrod czterdziestu pieciu liczb.\n\n");
    printf("Wylosowane liczby to: \n");
    losowanie(4,45);
    printf("\n\nPodaj jedna liczbe z zakresu od 1 do 36\n\n");
    for(i=1 ;i<=1; i++)scanf("%d",&numerek[i]);
    printf("Teraz nastapi losowanie jednej liczby.\n\n");
    printf("Twoim Szczesliwym Numerkiem jest liczba:\n\n");
    losowanie(1,36);
    system ("PAUSE");
}
int szczesliwychybil()
{
    printf("Za chwile komputer wylosuje za Ciebie 4 z 45 liczb oraz jedna - Twojego Szczesliwego Numerka\n\n");
    printf("Oto 4 liczby, ktore wytypowal za Ciebie komputer\n\n");
    losowanie(4,45);
    printf("\n\nOto 1 liczba, ktora komputer wytypowal za Ciebie\n");
    losowanie(1,36);
    printf("\n\nWyniki losowania czterech liczb\n\n");
    losowanie(4,45);
    printf("\n\noraz wylosowany Twoj Szczesliwy Numerek\n ");
    losowanie(1,36);
    system("PAUSE");
}
int szczesliwywybor()
{
    int i;
    printf("1 Chybil-trafil\n\n2.Wytypuj liczby\n\n3.Cofnij do menu\n");
    i=getchar();
    switch(i)
    {
        case'1' : szczesliwychybil();break;
        case'2' : nszczesliwy();break;
        case'3' : menu();break;
    }
    system("cls");
    szczesliwywybor();
    system("PAUSE");
}
int menu()
{
    int c;
    printf("========================================================================\n\n");
    printf("                  LOTTO\n\n");
    printf("            Copyright by Aleksander Romanowski\n\n");
    printf("========================================================================\n\n");
    printf("1.Duzy lotek\n2.Multi lotek\n3.Twoj Szczesliwy Numerek\n4.Wyjscie\n");
    c=getchar();
    switch(c)
    {
        case'1': duzywybor();break;
        case'2': multiwybor();break;
        case'3': szczesliwywybor();break;
        case'4': exit(0); break;
    }
    system("cls");
    menu();
}
int main()
{
    srand(time(NULL));
    menu();
}

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