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

Switch,for loop. random generator.

Ostatnio zmodyfikowano 2017-11-12 12:17
Autor Wiadomość
xxxxxxx
Temat założony przez niniejszego użytkownika
Switch,for loop. random generator.
» 2017-11-12 10:36:21
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    int w = 0, p = 0;
    srand( time( 0 ) );
    int tab[ 5 ];
   
    for( int i = 1; i <= 5; i++ ) {
        tab[ i ] = rand() % 2;
        switch( tab[ i ] ) {
        case 1: w++; break;
        case 0: p++;
        }
        cout << i << ".  " << tab[ i ] << "   " << w << "   " << p << endl;
    }
}
program losuje 5 liczb <0,1> . w momencie wylosowania 1 chce aby program przestal losowac i wyswietlil liczby do momentu wylosowania 1.
P-166800
xxxxxxx
Temat założony przez niniejszego użytkownika
» 2017-11-12 11:02:22
I co nikt nie wie? Niekt nie jest w stanie udzielić wskazówek, uwag? jak trzeba to zaplace.
P-166802
Kinexity
» 2017-11-12 11:09:52
1. Co się tak niecierpliwisz. Może się nawet zdarzyć, że na odp możesz czekać do jutra.
2. To nie jest forum, na którym musisz zapłacić, żeby dostać pomoc.
3. break w switch'u nie przerywa pętli.
4. W pętli wychodzisz poza zakres tablicy.
P-166804
xxxxxxx
Temat założony przez niniejszego użytkownika
» 2017-11-12 11:15:08
waptpie; plemieniu zmijowemu placi sie za wszystko.

dziekkuje zegnam. to juz ostatni post.
P-166805
YooSy
» 2017-11-12 11:15:15
wyswietlil liczby do momentu wylosowania 1.
Może się zdarzyć, że program nigdy nie wylosuje jedynki. Opieranie programu na takim warunku jest ryzykowne.

waptpie; plemieniu zmijowemu placi sie za wszystko.
Nie za wszystko, ale nie ma co traktować "zmijowego plemienia" jak własnych lokajów,
którzy tylko czekają, aż jaśniepan zada pytanie.
Przez czas oczekiwania pewnie samemu rozwiązałoby się problem.
P-166806
Wuwus1
» 2017-11-12 12:17:49
Zmodyfikowałem twój program troszeczkę. Po pierwsze wywaliłem pętle for i wstawiłem pętle warunkową, która kończy się gdy program skończy pętle lub jeżeli zmienna end będzie równać się true. Zmienna end zmienia się na true jeśli program wylosuje 1 kończy pętle warunkową. Następna pętla for wypisuje wartości.

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    const int SIZE = 5; //Wielkość tablicy
    int w = 0, p = 0; //Zmienne do inkrementowania
    srand( time( 0 ) );
    int tab[ SIZE ]; //Tablica na wartości (Można by ją zastąpić bool by zaoszczędzić na pamięci)
    int i = 0; //Zmienna do pętli warunkowej
    bool end = false; //Zmienna do pętli warunkowej
   
    while( i <= SIZE - 1 && end == false ) //Pętla warunkowa
    {
        tab[ i ] = rand() % 2; //Losowanie i przypisanie wartości do tablicy
        switch( tab[ i ] ) //Switch
        {
        case 1: //Jeżeli 1
            w++; //inkrementuj
            end = true; //przy kolejnej iteraji pętla się zakończy
            break;
           
        case 0: //Jeżeli 0
            p++; //inkrementuj
            break;
        }
        i++; //inkrementuj do pętli
    }
    for( int j = 0; j < i; j++ ) //Pętla wypisująca wartosci
         cout << j + 1 << ".  " << tab[ j ] << "   " << w << "   " << p << endl;
   
    return 0;
}
Wynik

1.  0   1   2
2.  0   1   2
3.  1   1   2
.
P-166809
« 1 »
  Strona 1 z 1