Tworzenie funkcji
Ostatnio zmodyfikowano 2022-12-28 14:49
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. #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; }
|
|
pekfos |
» 2022-03-19 22:33:25 Jaki problem? |
|
mateusz98 |
» 2022-03-20 15:36:22
|
|
AP1994 |
» 2022-10-05 15:14:25 Losowanie liczb można zrobić tak: #include <random>
float get_random( float Min, float Max ) { static default_random_engine e; static uniform_real_distribution < > dis( 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 ); }
|
|
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: #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 ); }
|
|
pekfos |
» 2022-12-28 14:49:13 A floor() po co? |
|
« 1 » |