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

Kalkulator nie pokazuje wyniku

Ostatnio zmodyfikowano 2011-07-18 18:23
Autor Wiadomość
Holdysz
Temat założony przez niniejszego użytkownika
Kalkulator nie pokazuje wyniku
» 2011-07-18 17:37:38
No dobra, postanowiłem zrobić kalkulator w c++ na razie tylko dodawanie i odejmowanie no ale program nie pokazuje wyniku :/ oto mój kod:
C/C++
#include <iostream>
using namespace std;

int main()
{
    int dodawanie, odjecie, dzialanie;
    cout << "[1] Dodawanie " << endl << "[2] Odejmowanie " << endl;
    cin >> dzialanie;
   
   
    switch( dzialanie )
    {
    case 1: cout << "Podaj liczby do dodania: " << endl;
        cin >> dodawanie;
        break;
    case 2: cout << "Podaj liczby do odjecia: " << endl;
        cin >> odjecie;
        break;
    default: cout << "Musisz wybrac liczbe 1 lub 2!" << endl;
        break;
    }
   
    switch( dodawanie )
    {
        int liczby[ 2 ], suma;
        std::cout << "Podaj dzialanie:";
        std::cin >> liczby[ 0 ] >> liczby[ 1 ];
        suma = liczby[ 0 ] + liczby[ 1 ];
        std::cout << "Suma trzech liczb wynosi:" << suma << std::endl;
    }
   
    switch( odjecie )
    {
        int cyfry[ 2 ], wynik;
        cout << "Podaj skladniki do odjecia: ";
        cin >> cyfry[ 0 ] >> cyfry[ 1 ];
        wynik = cyfry[ 0 ] - cyfry[ 1 ];
        cout << "Suma liczb wynosi:" << wynik << endl;
       
       
    }
   
    system( "pause>nul" );
}
Jeżeli kod jest zły poprawcie mnie!
P-36196
szyx_yankez
» 2011-07-18 17:44:36
Pomieszałeś switch z case.
Powinno być:
C/C++
switch( dzialanie )
{
case 1:
    //dodawanie
    break;
case 2:
    //odejmowanie
}
P-36197
Holdysz
Temat założony przez niniejszego użytkownika
Prawie dobrze
» 2011-07-18 17:51:32
Teraz kod wygląda tak:
C/C++
#include <iostream>
using namespace std;

int main()
{
    int dodawanie, odjecie, dzialanie, suma, wynik;
    cout << "[1] Dodawanie " << endl << "[2] Odejmowanie " << endl;
    cin >> dzialanie;
   
    switch( dzialanie )
    {
    case 1:
        int liczby[ 2 ];
        std::cout << "Podaj dzialanie:";
        std::cin >> liczby[ 0 ] >> liczby[ 1 ];
        suma = liczby[ 0 ] + liczby[ 1 ];
        cout << "Suma liczb wynosi:" << suma << endl;
        break;
       
    case 2: int cyfry[ 2 ];
        cout << "Podaj skladniki do odjecia: ";
        cin >> cyfry[ 0 ] >> cyfry[ 1 ];
        wynik = cyfry[ 0 ] - cyfry[ 1 ];
        cout << "Suma liczb wynosi:" << wynik << endl;
       
        break;
    default: cout << "Musisz wybrac liczbe 1 lub 2!" << endl;
        break;
    }
   
    system( "pause>nul" );
}

Dodawanie działa ale jak naprzykład wybiorę odejmowanie i wpiszę 2-1 to wynik =3 !!!
P-36198
akwes
» 2011-07-18 18:07:46
Użyj klamer
C/C++
case 1:
{
    grupa instrukcji;
}
break;
case 2:
{
    grupa instrukcji;
}
break;

I przy odejmowaniu nie mamy "sumy liczb" tylko "różnicę liczb".

I nie musisz używać osobnych tablic. Nie musisz robić cyfry[2] i liczby[2], wystarczy jedna z nich użyta dwa razy.
P-36200
Holdysz
Temat założony przez niniejszego użytkownika
» 2011-07-18 18:21:23
Zrobiłem jak napisałeś tylko oprócz tej "różnicy liczb" nie bardzo rozumiem...
P-36206
jaupl
» 2011-07-18 18:22:09
1. Dlaczego nie kolorujesz składni ?? [ cpp] twoj kod [/cpp] //tylko bez tej spacji ^^
2. bądź konsekwentny : jeśli na początku programu piszesz
using namespace std;
 to nie pisz już
std::cout
 tylko samo
cout
 :)
P-36208
DejaVu
» 2011-07-18 18:23:41
Odejmowanie: 10 - (-7) = 10 + 7 = 17
Dodawanie: 10 + (-7) = 10 - 7 = 3
To co powyżej wynika z matematyki, a nie z C++.
P-36210
« 1 »
  Strona 1 z 1