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

Kurs C++ Zadanie domowe rozdział 21.

Ostatnio zmodyfikowano 2014-06-20 22:01
Autor Wiadomość
Soberowy
Temat założony przez niniejszego użytkownika
Kurs C++ Zadanie domowe rozdział 21.
» 2012-11-29 20:06:50
Witam jestem początkującym programistą i mam prośbę czy mógłby ktoś sprawdzić czy dobrze wykonałem to zadanie?
Polecenie to:
"Napisz program, który wczyta 3 liczby podane przez użytkownika do tablicy, a następnie wylosuje 2 z nich bez powtórzeń. Wynik wypisz na ekran. Postaraj się napisać ten program w oparciu o funkcje."
Mój program:
C/C++
#include <iostream>             //Napisz program, który wczyta 3 liczby podane przez użytkownika do tablicy,
#include <cstdlib>              //a następnie wylosuje 2 z nich bez powtórzeń. Wynik wypisz na ekran.
#include <ctime>                //Postaraj się napisać ten program w oparciu o funkcje.
using namespace std;
bool sprawdzenie( int a, int b )
{
    if( a != b )
         return true;
    else
         return false;
   
}
int main()
{
    srand( time( NULL ) );
    int tab[ 3 ];
    int i = 0;
    cout << "Wpisz trzy liczby: ";
    do
    {
        cin >> tab[ i ];
        i++;
    } while( i < 3 );
   
    int wynik = tab[ rand() % i ];
    int wynik2 = tab[ rand() % i ];
    do
    {
       
        if( sprawdzenie( wynik, wynik2 ) == true )
             cout << "Program wylosowal dwie sposrod podanych przez Ciebie liczb.\nTe liczby to: " << wynik << ", " << wynik2;
       
    } while( sprawdzenie( wynik, wynik2 ) != true );
   
    return 0;
}
Uruchamiałem program kilka razy i wygląda na to, że chyba wszystko w porządku jednak proszę o sprawdzenie kodu przez kogoś doświadczonego.
P-70111
Admixior
» 2012-11-29 20:34:17
Jeśli wylosują się 2 takie same liczby to program się zwiesi ;] Powinieneś dać losowanie w pętli
//Mam nadzieje że wiesz dlaczego ;]
P-70116
Soberowy
Temat założony przez niniejszego użytkownika
» 2012-11-29 20:48:31
No właśnie próbowałem, ale wtedy wyskakiwały mi różne błędy z argumentami w while.. Wyskakuje mi że wynik i wynik2 was not declared in this scope.
P-70120
Całkowalny
» 2014-03-02 19:23:14
Przepraszam, że odkopuję ten stary temat, ale też stanąłem na tym zadaniu i zmodyfikowałem te podane przez Soberowy i moje pytanie czy teraz jest już poprawnie, dodałem pętlę, o której była mowa.
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
bool sprawdzenie( int a, int b )
{
    if( a != b )
         return true;
    else
         return false;
   
}
int main()
{
    srand( time( NULL ) );
    int tab[ 3 ];
    int i = 0;
    cout << "Wpisz trzy liczby: ";
    do
    {
        cin >> tab[ i ];
        i++;
    } while( i < 3 );
   
    int wynik, wynik2;
    do {
        wynik = tab[ rand() % i ];
        wynik2 = tab[ rand() % i ];
    } while( wynik == wynik2 );
   
    do
    {
       
        if( sprawdzenie( wynik, wynik2 ) == true )
             cout << "Program wylosowal dwie sposrod podanych przez Ciebie liczb.\nTe liczby to: " << wynik << ", " << wynik2;
       
    } while( sprawdzenie( wynik, wynik2 ) != true );
   
    return 0;
}
P-105519
snajperek130
» 2014-06-20 22:01:50
Tez stanalem na tym zadaniu, a to co napisales jest prawidlowe :).
P-112409
« 1 »
  Strona 1 z 1