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

Rozdział 15

Ostatnio zmodyfikowano 2012-08-09 18:22
Autor Wiadomość
cogielusz
Temat założony przez niniejszego użytkownika
Rozdział 15
» 2012-08-08 19:43:47
Hi. Mam pytanie jak zrobić, gdy jest wprowadzona liczba "0" miała się kończyć program?

C/C++
#include<iostream>
using namespace std;
int main()
{
    int m, w;
    int x = 0;
    do
    {
        do {
            cin.clear();
            cin.sync();
            cout << "\nPodaj liczbe: "; cin >> w;
            cin.fail();
            if( cin == 0 || w == 0 )
                 cout << "Blad lub zero\n" << endl;
           
        }
        while( cin == 0 );
       
        cout << "Co chcesz zrobic?" << endl;
        cout << "1.dodawanie" << endl;
        cout << "2.odejmowanie" << endl;
        cout << "3.mnozenie" << endl;
        cout << "4.dzielenie" << endl;
        cout << "5.zakoncz" << endl;
        cin >> m;
        switch( m )
        {
        case 1:
            cout << "Wynik= " <<( x += w ) << endl;
            break;
        case 2:
            cout << "Wynik= " <<( x -= w ) << endl;
            break;
        case 3:
            cout << "Wynik= " <<( x *= w ) << endl;
            break;
        case 4:
            cout << "Wynik= " <<( x /= w ) << endl;
            break;
            default:
            cout << "Nic nie wybrales " << endl;
            break;
        }
    }
    while( m != 5 );
   
    return 0;
}
P-62072
tirou
» 2012-08-08 20:41:07
Nie uczyłem się tego kursu, jednak jeżeli to miałbyć kalkulator, to raczej jest błędnie zrobiony.

 
C/C++
switch( m )
{
case 1:
    cout << "Wynik= " <<( x += w ) << endl;
    break;
case 2:
    cout << "Wynik= " <<( x -= w ) << endl;
    break;
case 3:
    cout << "Wynik= " <<( x *= w ) << endl;
    break;
case 4:
    cout << "Wynik= " <<( x /= w ) << endl;
    break;
    default:
    cout << "Nic nie wybrales " << endl;
    break;
}

co twoim zdaniem robią ta case'y ? bo zauważ, że zdeklarowales
x = 0
 ?

A kończyć program za pomocą błędnego wpisania, tak jak chciałeś np po wpisaniu "0" to komenda: break; po warunku :
if( cin == 0 || w == 0 )
 pozwoli ci wyjść z pętli.
Tylko nie pamiętam dokładnie czy to wychodzić z jednej w tym przypadku wewnętrznej pętli, czy z wszystkich.
P-62095
DejaVu
» 2012-08-08 21:17:09
Frazy, które należy wpisać w wyszukiwarkę google:
P-62096
cogielusz
Temat założony przez niniejszego użytkownika
» 2012-08-08 22:14:59
Nom dzięki za pomoc :) o to poprawiony kod i co o nim myślicie?


#include<iostream>
#include <cstdlib>
using namespace std;
int main()
{
    int m, w;
    int x = 0;
    do
    {

        do {
        system("CLS");
        cout << "Obecny wynik: ";
        cout << x << endl << endl;
            cin.clear();
            cin.sync();
            cout << "Podaj liczbe: "; cin >> w;
            cin.fail();
            if( cin == 0  );

                 }
        while( cin == 0 );
if(w!=0){
        cout << "Co chcesz zrobic?" << endl;
        cout << "1.dodawanie" << endl;
        cout << "2.odejmowanie" << endl;
        cout << "3.mnozenie" << endl;
        cout << "4.dzielenie" << endl;
        cin >> m;
        switch( m )
        {
        case 1:
            ( x += w );
            break;
        case 2:
            ( x -= w );
            break;
        case 3:
           ( x *= w );
            break;
        case 4:
            ( x /= w );
            break;
        default:
        cout << "Wybierz od 1 do 4!" << endl;}
        }
    }
    while( w&&m != 0 );
    cout << "Koniec.";
    return 0;
}
P-62098
kubawal
» 2012-08-09 18:22:34
if( cin == 0 )
 to chyba nie jest dobry pomysł. Raczej
if( cin )
P-62121
« 1 »
  Strona 1 z 1