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

[C++] Sprawdzanie dwóch tablic

Ostatnio zmodyfikowano 2013-12-27 18:36
Autor Wiadomość
maniek1310
Temat założony przez niniejszego użytkownika
» 2013-12-27 18:13:18
Jeżeli zrobię tak jak napisałeś to sprawdza wszystko prawidłowo. Ale jak wypisze kombinacje jak porównuje to sprawdza nie poprawnie.

Na próbę zmieniłem w pętlach for z 19 na 8 i efekt był taki :

Kod :
C/C++
for( int i = 1; i <= 8; i++ )
{
    for( int j = 1; j <= 8; j++ )
    {
        cout << i << " == " << j << endl;
    }
}
Wynik :
1 == 1
1 == 2
1 == 3
1 == 4
1 == 5
1 == 6
1 == 7
1 == 8
2 == 1
2 == 2
2 == 3
2 == 4
2 == 5
2 == 6
2 == 7
2 == 8
3 == 1
..........
..........
8 == 8

Kod ze sprawdzanie w warunku if nr 1 :
C/C++
for( int i = 1; i <= 8; i++ )
{
    for( int j = 1; j <= 8; j++ )
    {
        if( voluminy[ j ] == volumin_ignore[ i ] )
        {
            cout << i << " == " << j << endl;
            if( volumin_ignore[ j ] != "" )
            {
                //cout << j << "    " << voluminy[j] << endl;
                fail_part[ i ] = true;
            }
        }
    }
}
Wynik :

1 == 4
2 == 1
3 == 3
4 == 6
5 == 2
6 == 7
6 == 8
7 == 7
7 == 8
8 == 7
8 == 8

Kod ze sprawdzenia w warunku if nr 2 :
C/C++
for( int i = 1; i <= 8; i++ )
{
    for( int j = 1; j <= 8; j++ )
    {
        if( voluminy[ j ] == volumin_ignore[ i ] )
        {
           
            if( volumin_ignore[ j ] != "" )
            {
                cout << i << " == " << j << endl;
                //cout << j << "    " << voluminy[j] << endl;
                fail_part[ i ] = true;
            }
        }
    }
}
Wynik :

1 == 4
2 == 1
3 == 3
5 == 2
P-100342
pekfos
» 2013-12-27 18:20:13
Ale jak wypisze kombinacje jak porównuje to sprawdza nie poprawnie.
Sprawdza poprawnie. Wypisujesz tylko te porównania, dla których warunek jest prawdziwy.
P-100343
maniek1310
Temat założony przez niniejszego użytkownika
» 2013-12-27 18:36:38
Teraz jest już dobrze, musiałem zamienić kolejnością sprawdzanie i dodatkowo sprawdzić czy zmienne nie są puste w jednym warunku :)

@pekfos dzięki za pomoc

Tutaj podaje ostateczny kod (działający) :
C/C++
void sprawdz_partycje()
{
    for( int i = 0; i < 20; i++ )
    {
        fail_part[ i ] = false;
    }
   
    for( int i = 1; i <= 19; i++ )
    {
        for( int j = 1; j <= 19; j++ )
        {
            if( voluminy[ i ] == volumin_ignore[ j ] and( voluminy[ i ] != "" or volumin_ignore[ j ] != "" ) )
            {
                fail_part[ i ] = true;
            }
        }
    }
   
    for( int i = 1; i <= 19; i++ )
    {
        //cout << fail_part[i] << endl;
    }
}
P-100347
1 « 2 »
Poprzednia strona Strona 2 z 2