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

Lekcja 16

Ostatnio zmodyfikowano 2014-07-05 19:40
Autor Wiadomość
kyrtapo94
Temat założony przez niniejszego użytkownika
Lekcja 16
» 2014-07-04 23:18:28
Witam, robię zadanie z lekcji 16 i mam nastepujący problem. Jesli zdeklaruje zmienna licząca liczbę strzałów w int main() to program mi nie dziala jak powinien tylko zmienna ta przyjmuje jakies dziwne wartosci. Natomiast jesli zdeklaruje ja poza int main() to liczy dobrze.  Zamieszcze wam kod abyscie mogli zobaczyc o co m chodzi.
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int wybor, strzaly;
int main()
{
    srand( time( NULL ) );
   
    int liczba = rand() % 1000 + 1;
   
    cout << "zgadnij liczbe: \n" << liczba << endl;
    //na koncu poprzedniej linijki wyswietla mi sie wylosowana
    //liczba w celu sprawdzenia poprawosci programu
    do
    {
        cin.clear();
        cin.sync();
        cin >> wybor;
       
        strzaly++;
       
    } while( wybor != liczba );
   
    cout << "Wylosowana liczba to: " << liczba << endl;
    cout << "Liczba twoich strzalow wynosi: " << strzaly << endl;
   
    return 0;
}
P-113298
Glazus
» 2014-07-04 23:24:08
Wypadałoby nadać zmiennej wartość początkową.
P-113299
kyrtapo94
Temat założony przez niniejszego użytkownika
» 2014-07-04 23:29:10
rzeczywiście działa. Czy każdej nowo wprowadzonej zmiennej muszę nadać wartość początkowa?
P-113300
Jacob99
» 2014-07-05 11:56:56
Nie musisz, ale jest to dobry nawyk, który zapobiega później wielu kłopotom.
Nie musisz inicjalizować zmiennej, jeśli tuż po utworzeniu nadajesz jej jakąś wartość w kodzie np.:
C/C++
int zmienna;
cin >> zmienna;
Ale lepiej jednak inicjalizować zmienne, bo może to uratować cię w przyszłości przed wielogodzinnym siedzeniem przed ekranem
i usiłowaniem znalezienia w kodzie błędu, który wyniknie z niezainicjalizowanej zmiennej( a ty będziesz przekonany, że coś źle jest w kodzie).
P-113309
libed
» 2014-07-05 16:12:56
Bez przesady, z debuggerem znalezienie takiego błędu jest błyskawiczne :P

Zmienne globalne ( tworzone poza jakąkolwiek funkcją ) są zerowane automatycznie. Całą resztą musisz się zająć osobiście*

* - przynajmniej w Visualu
P-113318
pekfos
» 2014-07-05 19:34:37
Nie musisz, ale jest to dobry nawyk
Lepszy nawyk, to tworzenie zmiennych blisko miejsca ich użycia.

Nie musisz inicjalizować zmiennej, jeśli tuż po utworzeniu nadajesz jej jakąś wartość w kodzie np.:
C/C++
int zmienna;
cin >> zmienna;
Bez wsparcia nowego C++, przykład co najmniej mało trafny.

który wyniknie z niezainicjalizowanej zmiennej( a ty będziesz przekonany, że coś źle jest w kodzie).
To gdzie masz tą zmienną, jak nie w kodzie..? ;>
P-113334
Jacob99
» 2014-07-05 19:40:25
@Pekfos
Nowego C++ czyli którego?
P-113335
« 1 »
  Strona 1 z 1