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

atrybuty, wartości case w C++

Ostatnio zmodyfikowano 2020-06-25 00:04
Autor Wiadomość
alvarium
Temat założony przez niniejszego użytkownika
atrybuty, wartości case w C++
» 2020-06-23 22:44:29
Witam mam krótkie pytanie, pisałem sobie mój pierwszy program i miał być on kalkulatorem i chciałem sie zapytać czy w funkcji case atrybutami mogą być tylko liczby? używałem tego '' znaku ale nie działało dziekuje za odpowiedzi.
P-177199
jankowalski25
» 2020-06-23 23:06:54
Nie tylko liczby, znaki też mogą być. Ale całe napisy już nie. Czyli na przykład jeśli wczytasz znak działania i dasz
'+'
 wewnątrz
case
, to zadziała.
P-177200
alvarium
Temat założony przez niniejszego użytkownika
Nie rozumiem efektu kodu
» 2020-06-24 15:24:10
"#include <iostream>

using namespace std;
int main()
{
    char liczba1, liczba2, dzialanie;
    cout << "podaj pierwsza liczbe" << endl;
    cin >> liczba1;
    cout << "jakie dzialanie chcesz wykonac" <<endl;
    cin >> dzialanie;
    cout << "podaj druga liczbe" << endl;
    cin >> liczba2;

    switch( dzialanie ) {
    case '+':
        cout << "twoja liczba to" << liczba1+liczba2;
        break;
    }  
    return 0;
}"
To jest mój kod i wydaje mi się że wszystko dobrze napisałem ale gdy wpisze obliczenie 0 + 0 to wynik wychodzi 96, jeśli wartość obu liczb zwiekszy się o x to ta wartość dodaje się do 96. przy odejmowaniu to nie występuje.
P-177202
jankowalski25
» 2020-06-24 16:10:18
Bo dodajesz znaki. Zauważ, że możesz nawet wpisać "a+b" i też otrzymasz jakąś liczbę jako wynik. Typ
char
 oznacza pojedynczy znak, więc jeśli którakolwiek z dodawanych liczb będzie choćby dwucyfrowa, to już to nie zadziała. Do działań na liczbach służą inne typy danych, na przykład
int
.

Co do 96, to bierze się to stąd, że kod znaku
'0'
 wynosi
48
, zatem
48 + 48 = 96
. Przy odejmowaniu to nie występuje, bo wtedy z kolei
48 - 48 = 0
.
P-177203
alvarium
Temat założony przez niniejszego użytkownika
» 2020-06-25 00:04:24
Dziękuje bardzo za wyjaśnienie mojego problemu : )
P-177210
« 1 »
  Strona 1 z 1