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

[Lekcja 16} Problem z jednorazowym sprawdzaniem warunku

Ostatnio zmodyfikowano 2012-09-16 15:02
Autor Wiadomość
Chudziak
Temat założony przez niniejszego użytkownika
[Lekcja 16} Problem z jednorazowym sprawdzaniem warunku
» 2012-09-15 19:54:05
Witam. Chce odrobic zd z lekcji 16 jednak mam problem. Program sprawdza tylko w pierwszym fragmencie  czy liczba nie wykracza z przedzialu 1-100. Gdy wpisze liczbe ktora wykracza poza zakres np 900 z godnie z moja wola pokaze sie komunikat "Wpisales liczbe spoza zakresu losowania.Podaj prawidlowa liczbe", lecz gdy podam liczbe ,ktora nie wykracza poza zakres np 90 a nastepnie znow ,ktora wykracza nie pokazuje go,a jedyne info ze liczba jest za duzo/mala. Jak zrobic by program sprawdzal czy liczba jest odpowiednia niezaleznie od kolejnosci wpisywania?

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>

using namespace std;

int main()
{
    srand( time( NULL ) );
    int wylosowana =( rand() % 100 ) + 1;
    int wprowadzona;
    int proby = 0;
    cout << "Program wylosowal liczbe od 1 do 100. Sproboj ja odgadnac" << endl;
    cin >> wprowadzona;
    do
    {
        if( wprowadzona <= 0 || wprowadzona > 100 )
        {
            cout << "Wpisales liczbe spoza zakresu losowania.Podaj prawidlowa liczbe" << endl;
            cin >> wprowadzona;
        } else continue;
       
    } while( wprowadzona <= 0 || wprowadzona > 100 );
   
    do
    {
        if( wprowadzona < wylosowana )
             cout << "Liczba jest za mala" << endl;
        else
             cout << "Liczba jest za duza" << endl;
       
        proby++;
        cout << "Sproboj jeszcze raz" << endl;
        cin >> wprowadzona;
    }
    while( wprowadzona != wylosowana );
   
    cout << "Gratulacje,trafiles. Twoja ilosc strzalow to: " << proby + 1 << endl;
   
   
   
   
    system( "PAUSE" );
    return( 0 );
}
P-64995
withelm
» 2012-09-15 22:59:35
ponieważ sprawdzasz czy 'wprowadzona' tylko jeden raz ;)

ups, sorki
P-65003
Chudziak
Temat założony przez niniejszego użytkownika
» 2012-09-15 23:01:15
Właśnie wiem,ze tak jest i tak tez napisalem-pytam sie jak przeksztalcic ten kod aby sprawdzalo za kazdym razem.
P-65004
Jurek
!
» 2012-09-15 23:28:23
sproboj ten




#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>

using namespace std;

int main()
{
    srand( time( NULL ) );
    int wylosowana =( rand() % 100 ) + 1;
    int wprowadzona;
    int proby = 1;
    cout << "Program wylosowal liczbe od 1 do 100. Sproboj ja odgadnac" << endl;
    cin >> wprowadzona;
    do
    {
    if(wprowadzona>wylosowana)

        {cout<<"za duza"<<endl;
        if(wprowadzona>100)
        cout<<"poza zakresem"<<endl;
        }
    else
    {
        cout<<"za mala"<<endl;
        if(wprowadzona<=0)
        cout<<"spoza zakresu"<<endl;
    }

    ++proby;
    cin>>wprowadzona;
    }while(wprowadzona!=wylosowana);
    cout<<"zgadles, ta liczba to: "<<wylosowana<<endl;
    cout<<"proby: ";
    cout<<proby;


    return 0 ;
}
P-65005
Jurek
ten powinien byc jeszcze lepszy
» 2012-09-15 23:57:59

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>

using namespace std;

int main()
{
    srand( time( NULL ) );
    int wylosowana =( rand() % 100 ) + 1;
    int wprowadzona;
    int proby = 1;
    cout << "Program wylosowal liczbe od 1 do 100. Sproboj ja odgadnac" << endl;
    cin >> wprowadzona;
    do
    {
    if(wprowadzona>100 or wprowadzona<=0)
    cout<<"poza zakresem"<<endl;
    else
    {
        if(wprowadzona>wylosowana)
        cout<<"za duza"<<endl;
        else
        cout<<"za mala"<<endl;
    }
    ++proby;
    cin>>wprowadzona;
    }while(wprowadzona!=wylosowana);
    cout<<"zgadles, ta liczba to: "<<wylosowana<<endl;
    cout<<"Proby: "<<proby;


    return 0 ;
}
P-65009
yoogi
» 2012-09-16 08:26:17
Kod umieszczać pomiędzy znaczniki [ c p p ] kod [ / c p p ]
P-65028
m4tx
» 2012-09-16 09:52:28
Kod umieszczać pomiędzy znaczniki [ c p p ] kod [ / c p p ]
Eh...
@autor tematu
» Kurs STC » Kolorowanie składniKolorowanie składni języka C++ lekcja

@yoogi
» Kurs STC » PodstawyPodstawowe informacje o STC lekcja
P-65037
Chudziak
Temat założony przez niniejszego użytkownika
Dzięki
» 2012-09-16 15:02:15
Dzięki,wszystko działa,temat mozna zamknac. Dla potomnych: Program zmodyfikowalem tak,aby liczby spoza zakresu nie byly wliczane   doogolnej ilosci strzalow. I jeszcze nie wiem dlaczego, ale MV C++ Express nie obsluguje operatora"or" i musialem go zastapic "||". Kod:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>

using namespace std;

int main()
{
    srand( time( NULL ) );
    int wylosowana =( rand() % 100 ) + 1;
    int wprowadzona;
    int proby = 1;
    cout << "Program wylosowal liczbe od 1 do 100. Sproboj ja odgadnac" << endl;
    cin >> wprowadzona;
   
    do
    {
        if( wprowadzona > 100 || wprowadzona <= 0 )
        {
            cout << "Liczba jest poza zakresem." << endl;
            proby--;
        }
        else
        {
            if( wprowadzona > wylosowana )
                 cout << "Liczba jest za duza" << endl;
            else
                 cout << "Liczba jest za mala" << endl;
           
        }
        proby++;
        cin >> wprowadzona;
    } while( wprowadzona != wylosowana );
   
    cout << "zgadles, ta liczba to: " << wylosowana << endl;
    cout << "Proby: " << proby;
   
   
   
    system( "PAUSE" );
    return( 0 );
}


P-65049
« 1 »
  Strona 1 z 1