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

Lekcja 21. Zadanie 1.

Ostatnio zmodyfikowano 2014-06-24 22:24
Autor Wiadomość
Haryen
Temat założony przez niniejszego użytkownika
Lekcja 21. Zadanie 1.
» 2014-06-23 21:25:08
Cześć! Próbuję sobie zrobić taką notatkę co program ma robić krok po kroku w zadaniu 1. Tylko nie wiem z jakiego przedziału mają być te liczby wylosowane. One są zapisane w tablicy, to w takim razie mam znaleźć najmniejszy podany element i największy i z takiego przedziału mam losować czy dla losowania z tablicy jest jakiś trik? :P
P-112606
pekfos
» 2014-06-23 21:30:34
A jak odwołujesz się do konkretnego elementu tablicy..? (retoryczne. Nie odpowiadaj, tylko pomyśl)
P-112607
Haryen
Temat założony przez niniejszego użytkownika
» 2014-06-23 21:37:57
Mogę wylosować indeks.

Napisałem program dopiero teraz, bo wczoraj nie miałem czasu. Wszystko się kompiluje, ale po wpisaniu liczb do tablicy nic się nie dzieje. Próbuję znaleźć błąd, ale nie widzę. Palnąłem jakąś głupotę? :P

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

void wypelnienie( int t[], int iRozmiar );
int losuj();
bool czyBylaWylosowana( int t[], int ile, int iWylosowana );
void wypisz( int t[], int iRozmiar );

//********************************

int main()
{
    srand( time( NULL ) );
    int iWpisane[ 3 ], iWylosowane[ 2 ], iWylosowana, iIndeks, iLiczbaElementow = 0;
   
    wypelnienie( iWpisane, 3 );
   
    do
    {
        iIndeks = losuj();
        iWylosowana = iWpisane[ iIndeks ];
        if(( czyBylaWylosowana( iWylosowane, iLiczbaElementow, iWylosowana ) ) == true )
             continue;
        else
        {
            iWylosowane[ iLiczbaElementow ] = iWylosowana;
            iLiczbaElementow++;
        }
       
    } while( iLiczbaElementow < 2 );
   
    wypisz( iWylosowane, 2 );
   
    return 0;
}

//*********************************
void wypelnienie( int t[], int iRozmiar )
{
    int i = 0;
    do
    {
        cout << "Podaj " << i + 1 << " liczbe: ";
        cin >> t[ i ];
        i++;
       
    } while( i < iRozmiar );
   
}

int losuj()
{
    return rand() % 3;
}

bool czyBylaWylosowana( int t[], int ile, int iWylosowana )
{
    if( ile == 0 )
         return false;
   
    int i = 0;
    do
    {
        if( t[ i ] == iWylosowana )
             return true;
       
    } while( i < ile );
   
    return false;
}

void wypisz( int t[], int iRozmiar )
{
    int i = 0;
   
    do
    {
        cout << "Element nr " << i + 1 << ": " << t[ i ] << endl;
        i++;
    } while( i < iRozmiar );
   
}
P-112609
Haryen
Temat założony przez niniejszego użytkownika
» 2014-06-24 22:16:46
Pomożecie? :)
P-112669
pekfos
» 2014-06-24 22:21:21
C/C++
do
{
    if( t[ i ] == iWylosowana )
         return true;
   
} while( i < ile );

Brakuje zwiększania i.
P-112670
Haryen
Temat założony przez niniejszego użytkownika
» 2014-06-24 22:24:01
Ok, wszystko działa. Dzięki. :)
P-112671
« 1 »
  Strona 1 z 1