Instrukcja warunkowa if.
Ostatnio zmodyfikowano 2016-01-24 20:44
Vesania00 Temat założony przez niniejszego użytkownika |
Instrukcja warunkowa if. » 2016-01-24 20:10:17 Mój pierwszy program wygląda tak: #include <iostream>
using namespace std;
int main() { int predkosc, punkty_karne, godzina = 12; int odpowiedz; cout << "Z jaka predkoscia jechales o " << godzina << "?" << endl; cin >> predkosc; if( predkosc <= 50 ) { cout << "Jechales wtedy bezpiecznie." << endl; punkty_karne = 0; } else { cout << "No, no... przekroczyles predkosc!" << endl; punkty_karne = 1; } t: godzina = godzina + 1; cout << "Jechales jeszcze dzisiaj o godzinie " << godzina << "? (Tak=1/Nie=0)" << endl; cin >> odpowiedz; if( odpowiedz = 1 ) { if( godzina < 15 ) { cout << "Z jaka predkoscia jechales o godzinie " << godzina << "?" << endl; cin >> predkosc; if( predkosc <= 50 ) { cout << "Jechales wtedy tez bezpiecznie." << endl; } else { cout << "No, no... Znow przekroczyles predkosc!/n"; punkty_karne = punkty_karne + 1; } goto t; } else { cout << "O tej godzinie i pozniej mogles juz jezdzic bez limitu." << endl << "Uzbierales w sumie dzisiaj: " << punkty_karne << " punktow karnych!" << endl; if( punkty_karne + 3 == 6 ) { cout << endl << "Niestety, ale musimy Ci zabrac prawo jazdy! :(" << endl; } else { cout << "Dzisiaj zachowujesz prawo jazdy!" << endl; } } return 0; } else { cout << "Dziêkujemy za testy!" << endl << "Uzbierales tylko " << punkty_karne << " i jestes bezpieczny." << endl; } return 0; }
W miejscu, gdzie należy wybrać T lub N, program źle reaguje na N. Jakby to pomijało. Ponad to, kiedy zmieniłem T i N, na wartości liczczbowe 1 i 0, to program zachowywał się jeszcze inaczej. Proszę o wskazówkę co powinienem zmienić. Dodam, że jestem na zaawansowanym początku kursu programowania. |
|
pekfos |
» 2016-01-24 20:11:59 To nie jest porównanie z 1. |
|
Vesania00 Temat założony przez niniejszego użytkownika |
» 2016-01-24 20:15:59 #include <iostream>
using namespace std;
int main() { int predkosc, punkty_karne, godzina = 12; int odpowiedz; cout << "Z jaka predkoscia jechales o " << godzina << "?" << endl; cin >> predkosc; if( predkosc <= 50 ) { cout << "Jechales wtedy bezpiecznie." << endl; punkty_karne = 0; } else { cout << "No, no... przekroczyles predkosc!" << endl; punkty_karne = 1; } t: godzina = godzina + 1; cout << "Jechales jeszcze dzisiaj o godzinie " << godzina << "? (T/N)" << endl; cin >> odpowiedz; if( odpowiedz = T ) { if( godzina < 15 ) { cout << "Z jaka predkoscia jechales o godzinie " << godzina << "?" << endl; cin >> predkosc; if( predkosc <= 50 ) { cout << "Jechales wtedy tez bezpiecznie." << endl; } else { cout << "No, no... Znow przekroczyles predkosc!/n"; punkty_karne = punkty_karne + 1; } goto t; } else { cout << "O tej godzinie i pozniej mogles juz jezdzic bez limitu." << endl << "Uzbierales w sumie dzisiaj: " << punkty_karne << " punktow karnych!" << endl; if( punkty_karne + 3 == 6 ) { cout << endl << "Niestety, ale musimy Ci zabrac prawo jazdy! :(" << endl; } else { cout << "Dzisiaj zachowujesz prawo jazdy!" << endl; } } return 0; } else { cout << "Dziêkujemy za testy!" << endl << "Uzbierales tylko " << punkty_karne << " i jestes bezpieczny." << endl; } return 0; } A gdy będą litery? Proszę o wskazówki co powinienem zrobić. |
|
carlosmay |
» 2016-01-24 20:17:53 = nie jest operatorem porównania. goto t; to samo zło. |
|
Vesania00 Temat założony przez niniejszego użytkownika |
» 2016-01-24 20:24:50 Okej, dziękuję bardzo teraz działa. Tylko mam pytanie - dlaczego nie działa, gdy zamiast liczb, odpowiadającym tak lub nie, podstawiam T i N? |
|
carlosmay |
» 2016-01-24 20:44:40 dlaczego nie działa, gdy zamiast liczb, odpowiadającym tak lub nie, podstawiam T i N? |
Ponieważ nie jest typu przyjmującego znaki char wprost (bez rzutowania). |
|
« 1 » |