Wypełnienie macierzy wartościami float - wypisuje zera

2011-10-18 15:07
0

Normalnie wtf. Napisałem sb funkcję, która zwraca mi liczbę z przedzialu (losową). Chciałem takimi liczbami wypełnić macierz. Po wyświetleniu macierzy otrzymuję w niej same zera O_O. Co jest?!

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

float losowaLiczba(int a, int b){

    float losowa = ((b-a)*((float)rand()/RAND_MAX))+a;
    if (losowa > 0)
    {
            if (losowa == 1)
                return 1.0;
            else
                return losowa/1.0f;
    }
     else
            return 0.0;
}

void wypelnijMacierz(int a, int b, float **macierz, int w, int h) {

    for (int i = 0; i < w; i++)
        for (int j = 0; j < h; j++)
             macierz[i][j] = losowaLiczba(a, b);
}

int main(int argc, char **argv){

    int x = 3;
    int y = 3;
    float a = 0.1;
    float b = 0.9;

    srand((unsigned) time(NULL));

    //macierz o rozmiarze x na y
    float **macierz = new float*[x];
    for(int i=0; i<x; i++)
        for(int j=0; j<y; j++)
            macierz[i] = new float[y];

    wypelnijMacierz(a, b, macierz, x, y);

    for(int i=0; i<x; i++){
        for(int j=0; j<y; j++)
            cout << "[" << i << "][" << j << "]=" << macierz[i][j];
        cout << "\n";
        }

    return 0;
}
edytowany 2x, ostatnio: madmike, 2011-10-18 19:52

Pozostało 580 znaków

2011-10-18 15:15
void wypelnijMacierz(int a, int b, float **macierz, int w, int h)
float a = 0.1;
float b = 0.9;
wypelnijMacierz(a, b, macierz, x, y);
edytowany 1x, ostatnio: Azarien, 2011-10-18 15:16

Pozostało 580 znaków

2011-10-18 15:20
0

Omfg, facepalm ... A chyba nigdy bym do tego nie doszedł .. eh, za dużo na dziś (Aż wstyd...) Dzięki!!!

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0