Kezdőoldal » Számítástechnika » Programozás » Az, hogy lehet, hogy ebben a...

Az, hogy lehet, hogy ebben a programnak a kimenetelében szerepelhet két ugyanolyan szám?

Figyelt kérdés

// main.cpp

#include <iostream>

#include <cstring>

#include <stdlib.h>

#include <time.h>


using std::cout ;

using std::cin ;

using std::endl ;

using std::string ;


typedef unsigned short int ushort ;

typedef unsigned int uint ;

typedef unsigned long ulong ;

typedef unsigned long long ulong_ulong ;


class Ushort2 {

public:

Ushort2(void): i_value(rand() % 5 + 1), i_x(true) {}

~Ushort2(void) {}

void i_setValue(const ushort number) { this->i_value = number ; }

void i_setX(const bool x) { this->i_x = x ; }

bool i_getX(void)const { return this->i_x ; }

ushort i_getValue(void)const { return this->i_value ; }

protected:

private:

ushort i_value ;

bool i_x ;

};


int main(void) {

srand(time(0)) ;

const ushort maxNumber = 5 ;

Ushort2 numberArray[maxNumber] ;


for(ushort i = 0; i < maxNumber; ++i)

for(ushort j = 0; j < maxNumber; ++j)

if(i != j)

if(numberArray[i].i_getValue() == numberArray[j].i_getValue()) {

numberArray[i].i_setValue(rand() % 5 + 1) ;

--j ;

}


for(ushort i = 0; i < 5; ++i)

cout << numberArray[i].i_getValue() << endl ;



return 0 ;

}


Amikor az objektumoknak a változóiban levő érték változik mindig újat sorsolok az egyiknek egészen addig míg a két érték nem fog különbözni.


De mégsem működik úgy ahogy kellene.Miért?


2012. nov. 21. 06:16
 1/2 A kérdező kommentje:

Már tudom mi a baj.

Így már jó az tuti:

for(ushort i = 0; i < maxNumber; ++i)

for(ushort j = 0; j < maxNumber; ++j)

if(i != j)

if(numberArray[i].i_getValue() == numberArray[j].i_getValue()) {

numberArray[i].i_setValue(rand() % 5 + 1) ;

i = 0 ;

break ;

}


De hogy lehet ezt tökéletesíteni mert elég lassú kódnak tűnik.

2012. nov. 21. 06:46
 2/2 iostream ***** válasza:
Ez a kód gyakorlatilag megpróbálja kisorsolni 1-5 a számokat. Akkor sokkal egyszerűbb lenne feltölteni sorban, és [link] ezt ráhívni.
2012. nov. 21. 13:13
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!