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

Tworzenie funkcji

Ostatnio zmodyfikowano 2022-12-28 14:49
Autor Wiadomość
M1KS0N
Temat założony przez niniejszego użytkownika
Tworzenie funkcji
» 2022-03-19 14:11:49
Cześć mam taki kod i potrzebuję zrobić funkcje odpowiadające za losowanie liczb oraz liczb podanych przez użytkownika. Udało mi się jedynie zrobić pętle odpowiadająca za porówanie obu tych tablic. Jednak mam problem ze zrobieniem dwóch pozostałych funkcji.
 
C/C++
#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

int liczbyg[ 6 ];
int z;
int i;





int compare( int liczbyg[ ], int wylosowane[ ] ) {
   
int punkty = 0;
   
for( int i = 0; i < 5; i++ ) {
       
for( int k = 0; k < 5; k++ ) {
           
if( liczbyg[ i ] == wylosowane[ k ] ) punkty++;
           
       
}
       
    }
   
return punkty;
}

int main()

{
   
cout << "Podaj zakres liczbowy:" << " ";
   
cin >> z;
   
   
cout << "Podaj" << " " << i + 1 << " " << "liczbe" << endl;
   
   
cin >> liczbyg[ i ];
   
   
   
   
for( int i = 0; i < 6; i++ )
   
{
       
       
cout << "Podaj" << " " << i + 1 << " " << "liczbe" << endl;
       
       
cin >> liczbyg[ i ];
   
}
   
   
cout << "Wybrane liczby:" << "";
   
for( int i = 0; i < 6; i++ )
   
{
       
cout << " " << liczbyg[ i ];
   
}
   
srand( time( NULL ) );
   
   
int ile_pytan = z;
   
int ile_wylosowac = 6;
   
int ile_juz_wylosowano = 0;
   
int * wylosowane = new int[ ile_wylosowac + 1 ];
   
bool losowanie_ok;
   
   
for( int i = 1; i <= ile_wylosowac; i++ )
   
{
       
do
       
{
           
int liczba = rand() % ile_pytan + 1;
           
losowanie_ok = true;
           
           
for( int j = 1; j <= ile_juz_wylosowano; j++ )
           
{
               
               
if( liczba == wylosowane[ j ] ) losowanie_ok = false;
               
           
}
           
if( losowanie_ok == true )
           
{
               
               
ile_juz_wylosowano++;
               
wylosowane[ ile_juz_wylosowano ] = liczba;
           
}
        }
while( losowanie_ok != true );
       
   
}
   
   
   
cout << endl << "Wylosowane liczby:";
   
for( int i = 1; i <= ile_wylosowac; i++ )
   
{
       
cout << wylosowane[ i ] << " ";
       
   
}
   
   
   
   
cout << endl << "Trafiono" << " " << compare( liczbyg, wylosowane ) << " " "liczb" << endl;
   
   
return 0;
}
P-179324
pekfos
» 2022-03-19 22:33:25
Jaki problem?
P-179325
mateusz98
» 2022-03-20 15:36:22

P-179326
AP1994
» 2022-10-05 15:14:25
Losowanie liczb można zrobić tak:
C/C++
#include <random>

float get_random( float Min, float Max )
{
   
static default_random_engine e;
   
static uniform_real_distribution < > dis( Min, Max ); // zakres Min Max
   
return dis( e );
}
int get_random( int Min, int Max )
{
   
static random_device rd;
   
static mt19937 gen( rd() );
   
static uniform_int_distribution < std::mt19937::result_type > dis( Min, Max );
   
return dis( gen );
}
P-179683
Maciek
» 2022-12-28 14:10:38
Prosto można również losować liczby w następujący sposób z użyciem funkcji floor i rand:
C/C++
#include <cmath>
#include <ctime>
#include <iostream>

auto main()->int
{
   
srand( time( 0 ) );
   
int min = - floor( rand() % 10 );
   
int max = floor( rand() % 10 );
   
std::cout << "MIN: " << min << ", MAX: " << max << std::endl;
   
std::cout << "RANDOM RANGE: " <<( max - min ) << ", MIN: " << min << ", MAX:" << max << std::endl;
   
for( int i = 0; i < 10; ++i )
   
{
       
std::cout <<( int ) floor( rand() %( max - min ) ) + min << std::endl;
   
}
   
return( 0 );
}
P-179835
pekfos
» 2022-12-28 14:49:13
A floor() po co?
P-179836
« 1 »
  Strona 1 z 1