Wypisywanie losowych liczb do tablicy.
Ostatnio zmodyfikowano 2015-11-22 15:29
zabsontoziomal Temat założony przez niniejszego użytkownika |
» 2015-11-22 14:47:19 Na pewno nie wylosowało 0 i 1. Gdy się nie użyje funkcji, a w pętli losującej wywali przypisanie do tabeli i da się cout << liczba << endl; to wypisze ładnie wylosowane liczby i co najważniejsze rzeczywiste. |
|
carlosmay |
» 2015-11-22 14:55:01 Nie wiem co robisz źle. Skompilowałem kod u siebie i jakieś tam wyniki są. #include <iostream> #include <stdio.h> #include <ctime> #include <conio.h> #include <cstdlib>
using namespace std;
void sort( double * tab, int n ) { int mn = tab[ 0 ], mn_index = 0; for( int i = 0; i < n - 1; i++ ) { for( int j = i + 1; j < n; j++ ) if( tab[ j ] < tab[ mn_index ] ) mn_index = j; double pom = tab[ i ]; tab[ i ] = tab[ mn_index ]; tab[ mn_index ] = pom; mn = tab[ i + 1 ]; mn_index = i + 1; } }
int main() { double liczba; int n; cout << "Ile chcesz wygenerowac losowych liczb rzeczywistych?" << endl; cin >> n; double * tab; tab = new double[ n ]; srand( time( NULL ) ); for( int i = 0; i < n; i++ ) { liczba = 1.0 + double( n - 1 ) * rand() /(( double ) RAND_MAX ); tab[ i ] = liczba; } sort( tab, n ); for( int i = 0; i < n; i++ ) cout << tab[ i ] << endl; cin.sync(); _getch(); return 0; }
Program generuje coś takiego: Ile chcesz 6 2.18656 3.11524 3.36747 4.91614 5.00479 5.42747
edit: losujesz 'double' ale zapisujesz do tablicy 'int'. edit2: zmodyfikowałem kod i działa cacucho. |
|
zabsontoziomal Temat założony przez niniejszego użytkownika |
» 2015-11-22 15:29:31 Jajaj no tak, zapomniałem. Teraz jest elegancko, dzięki za pomoc. |
|
1 « 2 » |