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

Wypisywanie losowych liczb do tablicy.

Ostatnio zmodyfikowano 2015-11-22 15:29
Autor Wiadomość
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.
P-140570
carlosmay
» 2015-11-22 14:55:01
Nie wiem co robisz źle. Skompilowałem kod u siebie i jakieś tam wyniki są.
C/C++
#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.
P-140571
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.
P-140575
1 « 2 »
Poprzednia strona Strona 2 z 2