C++ pomoc sa programom

poruka: 12
|
čitano: 3.271
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
C++ pomoc sa programom

Eo napravija sam program koji ce ispisati 7 random brojeva od 1-39 ...tj. lutrija 7/39 ...

Nesto nije u redu jer mi svaki put ispise broj 71 kako prvi broj a ostalo sve tocno napravi...

 

Evo kod pa ako mi neko moze pomoc...hvala puno ;)

#include <iostream>
#include <time.h>
using namespace std;
int main()
{
    srand(time(NULL));
    int number[7];
    int i=1, x=1;
   
    for (x=1; x<8; x++)
    {
    number[x]= (rand()%39) +1;
    for (i=1; i<8; i++)
    {
        if (i!=x)
        {
                 if (number[x]==number[i])
                 {
                                       number[x]= (rand()%39) +1;
                                       i=1;
                 }
        }
    }
    }
    for (x=8; x>1; x--)
    {
        printf("%d ", number[x]);
    }
    printf("\n", number[x]);
    system("pause");
    return 0;
}

 
0 0 hvala 0
16 godina
neaktivan
offline
RE: C++ pomoc sa programom

Metni #include<cstdlib> i #include<cstdio>

I am awesome.
15 godina
neaktivan
offline
RE: C++ pomoc sa programom

ajmeee koja greškaa...nije to csdtlib i sstdio ne treba to nego ovo:

for (x=8; x>1; x--)

 

x nikada ne postaje 8 treba ic for (x=7; x>0; x--)

 

O jesan glup -.-"

Jel se more izbrisat topic nekako??

Poruka je uređivana zadnji put pet 2.7.2010 0:11 (calex3).
17 godina
offline
RE: C++ pomoc sa programom

Mislim da ti C u polje veličine 7 elemenata pohranjuje od elementa 0 do elementa 6.

 

Probaj ovaj kod:

#include <iostream>
#include <time.h>
using namespace std;
int main()
{
    srand(time(NULL));
    int number[7];
    int i=1, x=1;
   
    for (x=0; x<7; x++)
    {
    number[x]= (rand()%39) +1;
    for (i=0; i<7; i++)
    {
        if (i!=x)
        {
                 if (number[x]==number[i])
                 {
                                       number[x]= (rand()%39) +1;
                                       i=1;
                 }
        }
    }
    }
    for (x=7; x>0; x--)
    {
        printf("%d ", number[x]);
    }
    printf("\n", number[x]);
    system("pause");
    return 0;
}

Ivan Marijanović, univ. bacc. ing. comp.
15 godina
neaktivan
offline
RE: C++ pomoc sa programom

Ne ....

Tu dobro stoji x=1; x<8 to si ti izmjenija u x=0; x<7

 

Dolje sam falija stavija san da je x=8 a ne moze biti tako...

 

Evo novi kod koji radi savrseno :)

#include <iostream>
#include <time.h>
using namespace std;
int main()
{
    srand(time(0));
    int number[7];
    int i, x;
    char a;
    printf("WELCOME TO LOTO PROGRAM!!!");
    do
    {
    x=1;
    i=1;
    printf("\nLoto numbers 7/39:\n");
    for (x=1; x<8; x++)
    {
    number[x]= (rand()%39) +1;
    for (i=1; i<8; i++)
    {
        if (i!=x)
        {
                 if (number[x]==number[i])
                 {
                                       number[x]= (rand()%39) +1;
                                       i=1;
                 }
        }
    }
    }
    for (x=7; x>0; x--)
    {
        printf("%d ", number[x]);
    }
    printf("\n", number[x]);
   
    printf("New numbers?(Write y/n): ");
    scanf(" %c", &a);
    } while (a=='y' || a=='Y');
   
    system("pause");
    return 0;
}

Poruka je uređivana zadnji put pet 2.7.2010 0:20 (calex3).
17 godina
offline
C++ pomoc sa programom

Dobro te je 191x7 upozorio, uveo si number[7] u varijablu, a deklarirao si polje sa 7 elemenata, dakle sa indeksima 0-6.

Zbog toga ti na kraju programa javlja da je niz korumpiran

 

Ovako treba staviti:

 

#include <iostream>
#include <time.h>
using namespace std;
int main()
{
    srand(time(0));
    int number[7];
    int i, x;
    char a;
    printf("WELCOME TO LOTO PROGRAM!!!");
    do
    {
   
   
    printf("\nLoto numbers 7/39:\n");
    for (x=0; x<7; x++)
    {
    number[x]= (rand()%39) +1;
    for (i=0; i<7; i++)
    {
        if (i!=x)
        {
                 if (number[x]==number[i])
                 {
                                       number[x]= (rand()%39) +1;
                                       i=0;
                 }
        }
    }
    }
    for (x=0; x<7; x++)
    {
        printf("%d ", number[x]);
    }
  
  
    printf("New numbers?(Write y/n): ");
    scanf(" %c", &a);
    } while (a=='y' || a=='Y');
  
    system("pause");
    return 0;
}

Poruka je uređivana zadnji put sub 3.7.2010 13:47 (Floki).
 
0 0 hvala 0
17 godina
offline
C++ pomoc sa programom

Da ne bi kog uhvatila euforija pa pomislio da  ovakvi gornji ili slični programi mogu imalo biti korisni kod izvlačenja kuglica i time zaobići račun vjerojatnosti, na jednoj drugoj temi i radi drugih razloga sam napisao program koji mjeri vremenski rok izvlačenja pojedine kombinacije slučajnih brojeva, pa ga nije loše ovdje staviti:

 

 

/* LOTO KOMBINACIJE */
/* NAPOMENA: PROGRAM SLUŽI SAMO U ZABAVNE SVRHE I POTPUNO JE BESKORISAN KOD IGRANJA LOTA - DA JE KORISTAN JA BI BIO BOGATAŠ */

#include<iostream>
#include<ctime>
#include <cstdlib>
using namespace std;

int vjerojatnost(int *loto, int br, int *niz, int brI,  int *m) {
    int  i = 0, j, k, l, s, pom ;
   
    srand((unsigned)time(0));

    for(i=0; i<10400000000000000; i++) {
       *m = (i+1);
       j = 0;
       niz[j] = (rand()%39) + 1;

       while(j<6) {
          j++;
          do {
             l = 0;

             niz[j] = (rand()%39) + 1;

             for(k=j; k>0; k--)
                if(niz[j] == niz[k-1])
                   l++;
          }while(l != 0);

       }
    for(j=0; j<6; j++)
       for(k=0; k<6-j; k++)
          if(niz[k+1]< niz[k]) {
             pom = niz[k];
             niz[k] = niz[k+1];
             niz[k+1] = pom;
          }

   
    s = 0;
    for(j=0; j<=6; j++)
       if(loto[j] == niz[j])
          s++;
   
    if(s == 7)
       return s;
}

return s;
}


void main() {
    int loto[7], niz[7],  i=0, j, pom, m, s;
    cout<< "Unesi 7 brojeva u kombinaciju - raspon brojeva<1-39>: " << endl;
    cout<< "Unesi 1. broj: ";
    cin>> loto[i];
    for(i=1; i<=6; i++) {

       do {
          cout<< "\nUnesi " << (i+1) << ". broj: ";
          cin>> loto[i];
          if(loto[i]<1 || loto[i]>39 )
             cout<< "\nBroj mora biti u rasponu <1-39>!";
          }while(loto[i]<1 || loto[i]>39);
      
       j = i;
       while (j>0) {
          if(loto[i] == loto[j-1]) {
             cout<< "\nBroj mora biti razlicit od prethodnih!";
             cout<< "\nUnesi " << (i+1) << ". broj: ";
             cin>> loto[i];
          }
          j--;
       }

          }

    for(i=0; i<6; i++)
       for(j=0; j<6-i; j++)
          if(loto[j+1] < loto[j]) {
             pom = loto[j];
             loto[j] = loto[j+1];
             loto[j+1] = pom;
          }
    cout<< "\nUnesena kombinacija: ";
    for(i=0; i<=6; i++)
       cout<<  loto[i] << " ";
    cout<< endl;


    s = vjerojatnost(loto, 7, niz, 7,  &m);

   
    if(s == 7) {
       cout<< "Kombinacija je pogodjena!!!";
       cout<< "\nDobitna kombinacija : " << endl;
       for(i=0; i<=6; i++)
          cout<< niz[i] << " ";
       cout<< "\nKombinacija je izvucena nakon: " << ((float)m/104) << " godina." << endl;
       cout<< "\nBroj izvlacenja za dobitnu kombinaciju: " << m << endl;
    }
    else {
       cout<< "Kombinacija nije pogodjena niti nakon: " << ((float)m/104) << " godina." << endl;
       cout<< "\nBroj izvlacenja: " << m << endl;
    }


   


    system("pause");


    }


 
0 0 hvala 0
15 godina
neaktivan
offline
RE: C++ pomoc sa programom

Ma moze i ovako sad nema bas veze...

 

#include <iostream>
#include <time.h>
using namespace std;
int main()
{
    //Define stuff//
    srand(time(0));
    int number[8];
    int i, x, t;
    char a;
   
    system("CLS");
    //Program beginning//
    printf("WELCOME TO LOTO PROGRAM!!!");
    //Creating loto numbers//
    do
    {
    x=1;
    i=1;
    //Print message//
    printf("\nLoto numbers 7/39:\n");
    //Making 7 different random numbers//
    for (x=1; x<8; x++)
    {
    number[x]= (rand()%39) +1;
    for (i=1; i<8; i++)
    {
        if (i!=x)
        {        //Make sure they are all different and inside 1-39//
                 if (number[x]==number[i])
                 {
                                       number[x]= (rand()%39) +1;
                                       i=1;
                 }
        }
    }
    }
    //Order by size//
    for (x=7; x>0; x--)
    {
        for (i=1; i<x; i++)
        {
            if (number[i]>number[i+1])
            {
                 t=number[i+1];
                 number[i+1]=number[i];
                 number[i]=t;
            }
        }
    }
    //Print numbers on screen//
    for (x=1; x<8; x++)
    {
        printf("%d ", number[x]);
    }
   
    printf("\n");
    //Ask for new numbers//
    printf("New numbers?(Write y/n): ");
    scanf(" %c", &a);
    } while (a=='y' || a=='Y');
    //End program . . .//
    system("pause");
    return 0;
}

 

Poruka je uređivana zadnji put sub 3.7.2010 19:38 (calex3).
17 godina
offline
C++ pomoc sa programom

ovaj se neće rušiti

ima zanimljivo rješenje da se brojevi ne ponavljaju

ali zašto ostavlja polje sa indeksom 0 prazno, ne kužim, nema nikakvog razloga za to, ili ja ne znam taj razlog

i način sortiranja se ne vidi baš često,

Poruka je uređivana zadnji put sub 3.7.2010 20:09 (Floki).
 
0 0 hvala 0
15 godina
neaktivan
offline
RE: C++ pomoc sa programom

a ne znam.... pocetnik sam u c++...sad sam zavrsio 1 srednje a ovo se uci u drugome pa mi je ovo kao hobby nesto tako :)  ...nisam zna da se 0 moze koristit kao index... al nema veze...za iduci cu program to koristiti...

Poruka je uređivana zadnji put sub 3.7.2010 20:27 (calex3).
17 godina
offline
RE: C++ pomoc sa programom
calex3 kaže...

a ne znam.... pocetnik sam u c++...sad sam zavrsio 1 srednje a ovo se uci u drugome pa mi je ovo kao hobby nesto tako :)  ...nisam zna da se 0 moze koristit kao index... al nema veze...za iduci cu program to koristiti...

ma nema problema, bitna je volja, samo naprijed

i ne zaboravi da ovakvi programi za kuglice lutrije nemaju nikakvu praktičnu mogućnost bilo kakvog predviđanja, baš nikakvu, mogu biti jedino zabava

Poruka je uređivana zadnji put sub 3.7.2010 20:52 (Floki).
15 godina
neaktivan
offline
RE: C++ pomoc sa programom

Ma i ja sam njega pravija jer mi je prijatelj pravija ovakav program pa da vidimo ko ce bolji kod sastavit :D ...

Naravno da sluzi samo za zabavu :)

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice