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

Problem funkcja goto

Ostatnio zmodyfikowano 2011-03-28 16:53
Autor Wiadomość
Elano92
Temat założony przez niniejszego użytkownika
Problem funkcja goto
» 2011-03-28 16:09:18
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
using namespace std;
int main()
{
   
    int liczba;
    int a;
   
    poczatek:
   
    cout << "traf liczbe" << endl;
    cin >> a;
   
   
   
    srand( time( NULL ) );
    liczba =( rand() % 9 ) + 1;
    cout << "Wylosowana: " << liczba << endl;
   
   
    if( a != liczba )
         goto poczatek;
   
    cout << "nie trafiles ,przykro mi" << endl;
   
   
    else
         cout << "gratulacje" << endl;
   
   
   
   
    getch();
    return 0;
}


Pomóźcie łatwy programik , ale nie wiem gdzie błąd
P-29878
McAffey
» 2011-03-28 16:24:49
Goto nie jest polecanym sposobem (zazwyczaj) spróbuj pozbyć się go i zastosować pętlę.
P-29880
Elano92
Temat założony przez niniejszego użytkownika
» 2011-03-28 16:25:12
Do while sugerujesz?

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
using namespace std;
int main()
{
   
    int liczba;
    int a;
    int b = 0;
   
    poczatek:
   
   
    do
    {
        cout << "traf liczbe" << endl;
        cin >> a;
       
       
       
        srand( time( NULL ) );
        liczba =( rand() % 9 ) + 1;
        cout << "Wylosowana: " << liczba << endl;
       
        cout << "nie trafiles spruboj ponownie" << endl;
       
       
    }
   
    while( a != liczba );
   
    cout << "gratulacje" << endl;
   
    cout << "wykonales prob: " << b + a << endl;
   
   
   
    system( "pause" );
    getch();
    return 0;
}

Nie podlicza mi ilość prób nie wiem jak się za to zabrać ;/
P-29881
McAffey
» 2011-03-28 16:43:47
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
using namespace std;
int main()
{
   
    int liczba;
    int a;
    int prob = 1;
   
    do
    {
        cout << "traf liczbe" << endl;
        cin >> a;
       
       
       
        srand( time( NULL ) );
        liczba =( rand() % 9 ) + 1;
        cout << "Wylosowana: " << liczba << endl;
       
        if( liczba != a )
        {
            cout << "nie trafiles spruboj ponownie" << endl;
            prob++;
        }
       
    }
    while( a != liczba );
   
    cout << "gratulacje" << endl;
   
    cout << "wykonales prob: " << prob << endl;
   
   
   
    getch();
    return 0;
}

I poco zatrzymywałeś program i getchem i systemową pauzą ? ;p
P-29883
Elano92
Temat założony przez niniejszego użytkownika
» 2011-03-28 16:49:20
int prob = 1;
 Tu ma być wartość 0 to tylko przyuważyłem , bardzo dziękuje za pomoc . Zamykam

P-29886
malan
» 2011-03-28 16:50:33
@McAffey: I po co wywołujesz
srand( time( 0 ) );
 przy każdym obiegu pętli? ;p
P-29887
McAffey
» 2011-03-28 16:53:54
@Elano92 Ma być 1, ponieważ dopiero w pętli zaczyna nabijać, a pierwszą próbę masz przed pętlą. Czyli jak byś ustawił tak jak mówisz
int prob = 0;
 to gdybyś trafił za pierwszym razem to wyświetliło by Ci prób 0.
@malan bo tak było w kodzie oryginalnym a ja poprawiłem tylko to, co musiałem aby działało, nie poprawiałem nic biorąc pod uwagę oszczędzanie pamięci czy estetykę kodu ;p
P-29888
« 1 »
  Strona 1 z 1