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

[Lekcja 21] Zadanie 1

Ostatnio zmodyfikowano 2012-04-17 14:20
Autor Wiadomość
Bimbol
Temat założony przez niniejszego użytkownika
[Lekcja 21] Zadanie 1
» 2012-04-16 22:40:45
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int losuj_tablice( int losowanie[] ) // losuje tablice 1-3 //
{
    return losowanie[(( rand() % 3 ) + 0 ) ];
}

int wypisz( int liczba[], int ile ) // wypisuje wylosowana liczbe //
{
    cout << liczba[ ile ] << ", ";
    ile++;
}

bool sprawdz( int liczby[] ) // sprawdza czy liczby sa sobie równe, jesli tak to false jesli nie to true//
{
    cout << liczby[ 0 ] << " Tescik " << liczby[ 1 ] << endl; // Testuje czy na pewno losowane sa poprawne wartosci,  tylko info dla minie  //
    if( liczby[ 0 ] == liczby[ 1 ] || liczby[ 1 ] == liczby[ 0 ] ) return false;
    else
         return true;
   
}

int main()
{
    srand( time( 0 ) );
    int ilosc_liczb[ 3 ];
    int numer = 0;
    do
    {
        cin >> ilosc_liczb[ numer ]; // wczytuje 3 liczby na tablice //
        numer++;
    } while( numer < 3 );
   
    int ile = 0;
    int wylosowana[ 2 ];
    do
    {
        ile = 0;
        do
        {
            losuj_tablice( ilosc_liczb ); // losuje dowolna tablice 1-3 //
            wylosowana[ ile ] = losuj_tablice( ilosc_liczb ); // zapamietuje wartosci które wylosowal program //
            ile++;
        } while( ile < 2 );
       
        sprawdz( wylosowana ); // sprawdza czy nie sa takie same // Cos nie dziala wtf?
    } while( sprawdz == false ); // jesci warunek jest false to pentla sie powtarza i losuje na nowo. //
   
    ile = 0;
    do
    {
        wypisz( wylosowana, ile ); // wypisuje wylosowane tablice //
        ile++;
    } while( ile < 2 );
   
    return 0;
}

Program działa bez zarzutów, poza funkcją 'sprawdz', nie wiem jak z tego wybrnąć ;)
P-54680
xevuel
» 2012-04-16 22:47:18
"Jeśli liczby [0] jest równe liczby[1], lub jeśli liczby[1] jest równe liczby [0], to zwróć false"? Przeczytaj i pomyśl...
Zamień
C/C++
if( liczby[ 0 ] == liczby[ 1 ] || liczby[ 1 ] == liczby[ 0 ] ) return false;
else
     return true;

na
C/C++
if( liczby[ 0 ] == liczby[ 1 ] ) return false;
else return true;


Poza tym, powtórz sobie te podrozdziały:
Funkcje - pierwsze starcieRozdział 17. Co to są funkcje i jak się z nich korzysta. (lekcja)
Przekazywanie tablic jednowymiarowych do funkcjiRozdział 19. Niniejszy rozdział pokazuje podstawowe techniki przekazywania tablic jednowymiarowych do funkcji. (lekcja)

//A ten warunek pętli powinien chyba wyglądać tak:
C/C++
while( sprawdz( wylosowana ) == false );

P-54681
Bimbol
Temat założony przez niniejszego użytkownika
» 2012-04-17 14:20:46
Dziękuje. Program działa.
Racja gapa ze mnie dałem nie logiczny warunek ;/.

Lekcje przeanalizowałem raz jeszcze i nie wydawały mi się nie zrozumiałe.

Program napisałem na łatwiejszy sposób drugi raz i działa.

Pozdrawiam.
P-54696
« 1 »
  Strona 1 z 1