Lekcja 16
Ostatnio zmodyfikowano 2014-07-05 19:40
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. #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; 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; }
|
|
Glazus |
» 2014-07-04 23:24:08 Wypadałoby nadać zmiennej wartość początkową. |
|
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? |
|
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.: 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). |
|
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
|
|
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.:
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..? ;> |
|
Jacob99 |
» 2014-07-05 19:40:25 @Pekfos Nowego C++ czyli którego?
|
|
« 1 » |