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

Problem z operatorem porównania "!="

Ostatnio zmodyfikowano 2011-03-06 16:27
Autor Wiadomość
Lukaszzz
Temat założony przez niniejszego użytkownika
Problem z operatorem porównania "!="
» 2011-03-06 15:11:17
Gdy wylosowana = 1 i wszystkie dane w tablicy "doWypisania[]" wynosza jeden, to mimo:
C/C++
if( wylosowana != doWypisania[ a ] )
     return true;
I tak zwraca mi true. Nie mam pojecia dlaczego tak jest. Wdzieczny bede za wyjasnienie.
---------------------------------------------------------------------------------------------------------

C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

void wczytanieLiczb( int tablica[], int a, int b )
{
    int n = 1;
    do
    {
        do
        {
            cin.clear();
            cin.sync();
            cout << "Wprowadz " << n << " liczbe: ";
            cin >> tablica[ a ];
            a++;
            n++;
            cin.good();
            if( cin.good() == 0 )
            {
                a--;
                n--;
            }
        } while( !cin.good() );
       
    } while( a < b );
   
}

int losowanie( int tablica[], int c, int wylosowana )
{
    srand( time( NULL ) );
    int losowanieTablicy;
    do
    {
        losowanieTablicy =( rand() % c ) + 0;
        wylosowana =( rand() % 99999 ) + 0;
    } while( wylosowana != tablica[ losowanieTablicy ] );
   
    return wylosowana;
}

bool sprawdzenie( int wylosowana, int doWypisania[], int a )
{
    a = 0;
    do
    {
        if( wylosowana != doWypisania[ a ] ) //   <------------------ Problem
             return true;
       
        a++;
    } while( a < 2 );
   
    return false;
}

int main()
{
    int tablica[ 3 ];
    int doWypisania[ 2 ];
    int a = 0;
    int b = 3;
    int c = 3;
    int wylosowana;
    int tab2 = 0;
    bool X;
    wczytanieLiczb( tablica, a, b );
    losowanie( tablica, c, wylosowana );
    doWypisania[ tab2 ] = losowanie( tablica, c, wylosowana ); //
    tab2++;
   
    do
    {
       
        do
        {
            losowanie( tablica, c, wylosowana );
            sprawdzenie( wylosowana, doWypisania, a );
            X = sprawdzenie( wylosowana, doWypisania, a );
            cout << endl << "Prawda czy falsz " << X;
        } while( X == false );
       
        cout << endl << "wylosowana " << losowanie( tablica, c, wylosowana );
        doWypisania[ tab2 ] = losowanie( tablica, c, wylosowana );
        tab2++;
    } while( tab2 < 2 );
   
    tab2 = 0;
    do
    {
        cout << endl << "doWypisania" << "[" << tab2 << "]" << " = " << doWypisania[ tab2 ];
        tab2++;
    } while( tab2 < 2 );
   
    tab2 = 0;
    do
    {
        cout << endl << "tablica" << "[" << tab2 << "]" << " = " << tablica[ tab2 ];
        tab2++;
    } while( tab2 < 3 );
   
}
P-28906
WiecznyWem
» 2011-03-06 15:25:18
Nie przyglądałem się zbytnio, ale porównujesz jedną zmienną do tablicy. Po prostu tablicy ;D nie podałeś dla którego elementu ma być różna.

Poza tym, to ten znak slasha to tylko literówka?
P-28907
Lukaszzz
Temat założony przez niniejszego użytkownika
» 2011-03-06 15:48:03
Nie wiem o co chodzi, ale jak umieszam a w nawiasie kwadratowym to wyskakuje slash. W tamtym iejscu powinno byc a w nawiasie kwadratowym.
P-28908
malan
» 2011-03-06 15:50:38
Wstaw kod w [cpp][/cpp] to będzie wyglądał normalnie!
P-28909
Lukaszzz
Temat założony przez niniejszego użytkownika
» 2011-03-06 16:04:22
Gdzie dodkladnie wstawic te
 ? Wybacz za moj brak wiedzy.
P-28913
malan
» 2011-03-06 16:05:33
...
[cpp]Kod[/cpp]
Przykład:
[cpp]#include <iostream>
int main()
{
std::cout << "Hello word!";
}[/cpp]
Efekt:
C/C++
#include <iostream>
int main()
{
    std::cout << "Hello word!";
}
P-28914
Lukaszzz
Temat założony przez niniejszego użytkownika
» 2011-03-06 16:19:47
Dzieki Malan.
P-28918
malan
» 2011-03-06 16:22:50
Zmodyfikujmy trochę funkcję
sprawdzenie
:
C/C++
bool sprawdzenie( int wylosowana, int doWypisania[], int a )
{
    std::cout << "wylosowana = " << wylosowana << std::endl;
   
    a = 0;
    do
    {
        if( wylosowana != doWypisania[ a ] ) //   <------------------ Problem
             return true;
       
        a++;
    } while( a < 2 );
   
    return false;
}
Widzisz już błąd? :)
P-28919
« 1 » 2
  Strona 1 z 2 Następna strona