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

Rozdział 15 zadanie

Ostatnio zmodyfikowano 2011-07-23 11:17
Autor Wiadomość
Lamerek
Temat założony przez niniejszego użytkownika
Rozdział 15 zadanie
» 2011-07-22 23:00:31
C/C++
#include <iostream>
int main()
{
    using namespace std;
   
    int liczba;
    int liczba2;
    int c;
    int a1;
    int wynik;
    bool wczyt;
    do
    {
       
        std::cin.clear();
        std::cin.sync();
       
        cout << "[1] Dodawanie" << endl;
        cout << "[2] Odejmowanie" << endl;
        cout << "[3] Mnozenie" << endl;
        cout << "[4] Dzielenie" << endl;
        cout << "[5] Rezygnuje" << endl;
        cout << endl;
        cin >> a1;
    }
    while( 6 < a1 );
   
    switch( a1 )
    {
    case 1:
       
        do
        {
            std::cin.clear();
            std::cin.sync();
            cout << "Podaj liczbe:";
            cin >> liczba;
            cout << endl;
            wczyt = cin.good();
        }
        while( wczyt == 0 );
       
        do
        {
            std::cin.clear();
            std::cin.sync();
            cout << "Podaj druga liczbe:";
            cin >> liczba2;
            cout << endl;
            wczyt = cin.good();
        }
        while( wczyt == 0 );
       
        c = liczba + liczba2;
        cout << "Wynik: a+b=" << liczba << '+' << liczba2 << '=' << c;
        break;
    }
   
   
   
   
   
    switch( a1 )
    {
    case 2:
       
        do
        {
            std::cin.clear();
            std::cin.sync();
            cout << "Podaj liczbe:";
            cin >> liczba;
            cout << endl;
            wczyt = cin.good();
        }
        while( wczyt == 0 );
       
        do
        {
            std::cin.clear();
            std::cin.sync();
            cout << "Podaj druga liczbe:";
            cin >> liczba2;
            cout << endl;
            wczyt = cin.good();
        }
        while( wczyt == 0 );
       
        c = liczba - liczba2;
        cout << "Wynik: a-b=" << liczba << '-' << liczba2 << '=' << c;
        break;
    }
   
   
    switch( a1 )
    {
    case 3:
       
        do
        {
            std::cin.clear();
            std::cin.sync();
            cout << "Podaj liczbe:";
            cin >> liczba;
            cout << endl;
            wczyt = cin.good();
        }
        while( wczyt == 0 );
       
        do
        {
            std::cin.clear();
            std::cin.sync();
            cout << "Podaj druga liczbe:";
            cin >> liczba2;
            cout << endl;
            wczyt = cin.good();
        }
        while( wczyt == 0 );
       
        c = liczba * liczba2;
        cout << "Wynik: a*b=" << liczba << '*' << liczba2 << '=' << c;
        break;
       
       
       
       
        switch( a1 )
        {
        case 4:
           
            do
            {
                std::cin.clear();
                std::cin.sync();
                cout << "Podaj liczbe:";
                cin >> liczba;
                cout << endl;
                wczyt = cin.good();
            }
            while( wczyt == 0 );
           
            do
            {
                std::cin.clear();
                std::cin.sync();
                cout << "Podaj druga liczbe:";
                cin >> liczba2;
                cout << endl;
                wczyt = cin.good();
            }
            while( wczyt == 0 );
           
            c = liczba / liczba2;
            cout << "Wynik: a/b=" << liczba << '/' << liczba2 << '=' << c;
            break;
        }
    }
   
   
    return 0;
}


Proszę mi pomóc ponieważ dodawanie odejmowanie i mnozenie działa poprawnie a dzielenie nie działa wogóle. Proszę o rozwiązanie błędu.
P-36619
SeaMonster131
» 2011-07-22 23:14:19
Zajrzyj do kursu a masz tam wszystko wyjaśnione...
P-36620
Thud
» 2011-07-22 23:22:01
Panie Lamerek, na Twoim miejscu, tak dla schludnego programowania, przypomniałbym sobie strukturę Switch-Case. Gryzie mnie też pewna rzecz - nie lepiej tego robić na liczbach zmiennoprzecinkowych?
P-36621
Lamerek
Temat założony przez niniejszego użytkownika
» 2011-07-22 23:37:37
Może i lepiej. Ale dlaczego nie chce mi dzielić?
P-36622
akwes
» 2011-07-22 23:49:59
Nie chce działać czy są złe wyniki?

Liczby które masz są typu int.

Operator "/" dla typu int to dzielenie całkowite.

10/3 = 3;
9/3 = 3;
8/3 = 2;

Zmień swoje a,b,c na float.
P-36623
Lamerek
Temat założony przez niniejszego użytkownika
» 2011-07-22 23:50:02
Panowie udało mi się. Dziękuje za pomoc.
P-36624
Lamerek
Temat założony przez niniejszego użytkownika
» 2011-07-23 11:17:27
Czy teraz program jest dobrze zrobiony i wykonany zgodnie z poleceniem?
C/C++
#include <iostream>
int main()
{
    using namespace std;
   
    float liczba;
    float liczba2;
    float c;
    int a1;
    int wynik;
    bool wczyt;
    c = 0;
   
   
    do
    {
       
       
        do
       
        {
           
            std::cin.clear();
            std::cin.sync();
           
            cout << "[1] Dodawanie" << endl;
            cout << "[2] Odejmowanie" << endl;
            cout << "[3] Mnozenie" << endl;
            cout << "[4] Dzielenie" << endl;
            cout << "[5] Rezygnuje" << endl;
            cout << endl;
           
           
            cout << "Obecny wynik: " << c << endl;
            cin >> a1;
        }
        while( 6 < a1 );
       
        switch( a1 )
        {
        case 1:
           
            do
            {
                std::cin.clear();
                std::cin.sync();
                cout << "Podaj liczbe:";
                cin >> liczba;
                cout << endl;
                wczyt = cin.good();
            }
            while( wczyt == 0 );
           
            do
            {
                std::cin.clear();
                std::cin.sync();
                cout << "Podaj druga liczbe:";
                cin >> liczba2;
                cout << endl;
                wczyt = cin.good();
            }
            while( wczyt == 0 );
           
            c = liczba + liczba2;
            cout << "Wynik: a+b=" << liczba << '+' << liczba2 << '=' << c << endl;
           
           
            break;
           
        case 2:
           
            do
            {
                std::cin.clear();
                std::cin.sync();
                cout << "Podaj liczbe:";
                cin >> liczba;
                cout << endl;
                wczyt = cin.good();
            }
            while( wczyt == 0 );
           
            do
            {
                std::cin.clear();
                std::cin.sync();
                cout << "Podaj druga liczbe:";
                cin >> liczba2;
                cout << endl;
                wczyt = cin.good();
            }
            while( wczyt == 0 );
           
            c = liczba - liczba2;
            cout << "Wynik: a-b=" << liczba << '-' << liczba2 << '=' << c << endl;
            break;
           
        case 3:
           
            do
            {
                std::cin.clear();
                std::cin.sync();
                cout << "Podaj liczbe:";
                cin >> liczba;
                cout << endl;
                wczyt = cin.good();
            }
            while( wczyt == 0 );
           
            do
            {
                std::cin.clear();
                std::cin.sync();
                cout << "Podaj druga liczbe:";
                cin >> liczba2;
                cout << endl;
                wczyt = cin.good();
            }
            while( wczyt == 0 );
           
            c = liczba * liczba2;
            cout << "Wynik: a*b=" << liczba << '*' << liczba2 << '=' << c << endl;
            break;
           
           
        case 4:
           
            do
            {
                std::cin.clear();
                std::cin.sync();
                cout << "Podaj liczbe:";
                cin >> liczba;
                cout << endl;
                wczyt = cin.good();
            }
            while( wczyt == 0 );
           
            do
            {
                std::cin.clear();
                std::cin.sync();
                cout << "Podaj druga liczbe:";
                cin >> liczba2;
                cout << endl;
                wczyt = cin.good();
            }
            while( wczyt == 0 );
           
            c = liczba / liczba2;
            cout << "Wynik: a/b=" << liczba << '/' << liczba2 << '=' << c << endl;
            break;
           
        case 5:
           
            cout << "Dziekuje za skorzystanie z programu. :)";
            break;
        }
    }
    while( a1 <= 4 );
   
    return 0;
}
P-36686
« 1 »
  Strona 1 z 1