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

Lekcja 16- podstawy

Ostatnio zmodyfikowano 2011-06-28 20:13
Autor Wiadomość
Prefix
Temat założony przez niniejszego użytkownika
Lekcja 16- podstawy
» 2011-06-28 19:37:09
Witam, chciałbym, abyście przejrzeli ten kod, napisany przeze mnie do lekcji, z rozdziału 16 i zobaczyli, czy coś tu nie trzeba zmienić:
 Wszystko wydaje MI się ok, ale liczbe strzałów po zgadnięciu, zawsze pokazuje "50". Dlaczego tak jest?? ;). Z góry dzięki za odp, bo utknąłem, a chcę iść dalej w kursie.

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

int main()
{
   
    srand( time( NULL ) );
    int liczba;
    int strzaly;
    strzaly--;
    int los =( rand() % 1000 ) + 1;
    cout << "Podaj liczbe: ";
    cin >> liczba;
    cout << endl;
    do {
        if( liczba > los )
        {
           
            cout << "Liczba, ktora podales jest za duza.";
            cout << endl;
            cout << "Podaj liczbe: ";
            cin >> liczba;
           
           
        }
        else
        {
            cout << "Liczba, ktora podales jest za mala.";
            cout << endl;
            cout << "Podaj liczbe: ";
            cin >> liczba;
           
           
        }
    } while( los != liczba );
   
    do
    {
        if( los == liczba )
        {
           
            cout << "BRAWO WYGRALES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
           
            cout << "BRAWO WYGRALES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
           
            cout << "BRAWO WYGRALES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
           
            cout << "BRAWO WYGRALES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
           
            cout << "BRAWO WYGRALES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
           
            cout << "BRAWO WYGRALES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
            system( "cls" );
            cout << "Liczba Twoich strzałów, to: " << strzaly;
           
            cout << endl;
            cout << endl;
           
        }
    } while( strzaly != 0 );
   
    system( "pause" );
   
   
}
P-34854
Dawidsoni
» 2011-06-28 19:48:35
Kod w C++ umieszczaj w
[ cpp ]
[/cpp].

C/C++
int strzaly;
strzaly--;
Ta instrukcja jest bezsensu, bo nie zainicjalizowałeś obiektu strzały, więc jego wartość jest bezsensowna. Od niej odejmujesz 1, co jest też bezsensu. Powinno być:
int strzaly = 0;

Powinno działać po tej poprawce.
P-34857
Prefix
Temat założony przez niniejszego użytkownika
» 2011-06-28 20:00:52
No teraz wyświetla 0.
P-34858
Dawidsoni
» 2011-06-28 20:08:20
To użyj w tej 1 pętli wyrażenia: strzaly++; , czyli powiększ o 1.
P-34860
a3780459
» 2011-06-28 20:09:26
tu masz poprawiony kod:
C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main()
{
    srand( time( NULL ) );
    int liczba;
    int strzaly = 0;
    int los = rand() % 1000 + 1;
    do
    {
        cout << "Podaj liczbe: ";
        cin >> liczba;
        if( liczba > los )
        {
            cout << "Liczba, ktora podales jest za duza.";
        }
        else if( liczba < los )
        {
            cout << "Liczba, ktora podales jest za mala.";
        }
        cout << endl << endl;
        strzaly++;
    } while( los != liczba );
   
    cout << "BRAWO WYGRALES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << endl;
    cout << "BRAWO WYGRALES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << endl;
    cout << "BRAWO WYGRALES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << endl;
    cout << "BRAWO WYGRALES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << endl;
    cout << "BRAWO WYGRALES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << endl;
    cout << "BRAWO WYGRALES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << endl;
    system( "cls" );
    cout << "Liczba Twoich strzałów, to: " << strzaly;
   
    cout << endl;
    cout << endl;
    system( "pause" );
}

Pozmieniałem jeszcze parę rzeczy (bo ten program chyba jakoś tak miał wyglądać), możesz porównać oba kody to zobaczysz, co i jak...
P-34861
szyx_yankez
» 2011-06-28 20:10:25
C/C++
int strzaly = 0;
do
{
    strzaly++;
    ...
P-34863
Prefix
Temat założony przez niniejszego użytkownika
» 2011-06-28 20:13:52
Dzięki a3780459. Wszystko działa;) Zamykam
P-34865
asembler
» 2011-06-28 20:13:57
<FACEPALM> Nie [/cpp] tylko [ cpp] bez spacji na początku, kiedy kończysz kod używasz [/cpp]

@EDIT Poprawiłeś :)
P-34866
« 1 »
  Strona 1 z 1