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

Problem z pętła w programie.

Ostatnio zmodyfikowano 2017-12-01 19:00
Autor Wiadomość
Zigor36
Temat założony przez niniejszego użytkownika
Problem z pętła w programie.
» 2017-12-01 17:47:00
Witam, tworze obecnie program losujący hasło. Pętla for w moim programie ma się wykonać 9 razy, lecz w moich danych wyjściowych widać, że jest nieskończona.
Proszę o pomoc :)
C/C++
#include <iostream>
#include <conio.h>
#include <time.h>
#include <windows.h>
using namespace std;
int to_czy_to, liczba;
char litera;
void losuje_liczbe()
{
    liczba = rand() % 9 + 1;
    cout << liczba;
}

void losuje_litere()
{
    litera =( rand() % 24 ) + 97;
    cout << litera;
}

int main()
{
    srand( time( NULL ) );
    for( int x = 0; x = 9; x++ )
    {
        to_czy_to = rand() % 2 + 1;
        if( to_czy_to = 1 ) {
            losuje_liczbe();
        }
        if( to_czy_to = 2 ) {
            losuje_litere();
        }
       
    }
   
   
    getch();
}
P-167440
Kinexity
» 2017-12-01 17:55:16
Błąd w warunku pętli.
P-167441
orbit6
Błąd w warunkach pętli
» 2017-12-01 18:47:39
Tak jak kolega napisał, pętla będzie wykonywała sie tak długo jak tylko drugi warunek będzie 1, a twój x = 9 no nie za bardzo ma co zwracać, musisz dać x <= 9, czyli pętla będzie sie wykonywać tak długo jak tylko x będzie mniejsze lub równe 9.

Źle!
    for( int x = 0; x = 9; x++ )
    {
        to_czy_to = rand() % 2 + 1;
        if( to_czy_to = 1 ) {
            losuje_liczbe();
        }
        if( to_czy_to = 2 ) {
            losuje_litere();
        }
       
    }
Dobrze:
    for( int x = 0; x <= 9; x++ )
    {
        to_czy_to = rand() % 2 + 1;
        if( to_czy_to = 1 ) {
            losuje_liczbe();
        }
        if( to_czy_to = 2 ) {
            losuje_litere();
        }
       
    }
P-167443
SeaMonster131
» 2017-12-01 18:56:22
Jak ma się wykonać 9 razy, to warunek powinien być
i < 9
.
Od razu podpowiem, że
=
 to operator przypisania, a
==
 jest operatorem porównania.
P-167445
orbit6
» 2017-12-01 19:00:20
Faktycznie, ja wole europejski system dlatego zawsze robie
for(int x = 1; x <= 9; x++)
ale według tego co napisał kolega faktycznie trzeba użyć samego <
P-167446
« 1 »
  Strona 1 z 1