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

Lekcja 15 zad 2 lub 3

Ostatnio zmodyfikowano 2013-08-20 19:29
Autor Wiadomość
Cola
Temat założony przez niniejszego użytkownika
Lekcja 15 zad 2 lub 3
» 2013-08-20 15:40:56
Witam mam taki oto problem:
C/C++
#include <iostream>
int main()
{
    int liczba;
    std::cout << "Podaj liczbe od 1 do 5: " << std::endl;
    std::cout << "1. Dodawanie" << std::endl;
    std::cout << "2. Odejmowanie" << std::endl;
    std::cout << "3. Mnozenie" << std::endl;
    std::cout << "4. Dzielenie" << std::endl;
    std::cout << "5. Rezygnuj" << std::endl;
    std::cin >> liczba;
    if( liczba <= 5 && liczba > 0 )
    do
    {
        std::cin.clear();
        std::cin.sync();
        switch( liczba )
        {
        case 1:
            int liczba1, liczba2;
            std::cout << "Wybrales dodawanie" << std::endl;
            std::cout << "Podaj liczbe 1: " << std::endl;
            std::cin >> liczba1;
            std::cout << "Podaj liczbe 2: " << std::endl;
            std::cin >> liczba2;
            std::cout << "Wynik :" << liczba1 + liczba2 << std::endl;
            break;
        case 2:
            std::cout << "Wybrales odejmowanie" << std::endl;
            std::cout << "Podaj liczbe 1:" << std::endl;
            std::cin >> liczba1;
            std::cout << "Podaj liczbe 2:" << std::endl;
            std::cin >> liczba2;
            std::cout << "Wynik :" << liczba1 - liczba2 << std::endl;
            break;
        case 3:
            std::cout << "Wybrales Mnozenie" << std::endl;
            std::cout << "Podaj liczbe 1:" << std::endl;
            std::cin >> liczba1;
            std::cout << "Podaj liczbe 2:" << std::endl;
            std::cin >> liczba2;
            std::cout << "Wynik :" << liczba1 * liczba2 << std::endl;
            break;
        case 4:
            std::cout << "Wybrales Dzielenie" << std::endl;
            std::cout << "Podaj liczbe 1:" << std::endl;
            std::cin >> liczba1;
            std::cout << "Podaj liczbe 2:" << std::endl;
            std::cin >> liczba2;
            std::cout << "Wynik :" << liczba1 / liczba2 << std::endl;
            break;
            std::cin.clear();
            std::cin.sync();
        case 5:
            std::cout << "Koniec" << std::endl;
            break;
        default:
            std::cout << "Nie wprowadziles liczb!" << std::endl;
            std::cout << "Lub nie wprowadziles poprawnych liczb!";
            while( liczba > 0 );
           
            return 0;
        }
    }
}
1 Pytanie. Czy o to w tym zadaniu chodziło? "Napisz prosty kalkulator, który będzie potrafił dodawać, odejmować, mnożyć i dzielić. Program ten ma działać następująco:
1. Wypisuje obecny wynik
2. Wprowadź liczbę
3. Wybierz działanie (jeżeli liczba różna od 0)
4. Wykonaj obliczenia (jeżeli liczba różna od 0)
5. Wróć do kroku 1.
6. Jeżeli wprowadzoną liczbą jest 0, zakończ program. "

2 Pytanie. Kiedy próbuję zbudować program, kompilator złości się na mnie:
|In function 'int main()':|
|64|error: expected 'while' before '}' token|
|64|error: expected '(' before '}' token|
|64|error: expected primary-expression before '}' token|
|64|error: expected ')' before '}' token|
|64|error: expected ';' before '}' token|
||=== Build finished: 5 errors, 0 warnings (0 minutes, 0 seconds) ===|
Jakieś głupstwo popełniłem :/

Dzięki za pomoc i przepraszam jak zrobiłem jakiś głupi błąd... Cały czas się ucze :P
P-90622
Monika90
» 2013-08-20 15:59:47
Pętla do-while ma postać
C/C++
do {
    //instrukcje...
} while( warunek );

a nie
C/C++
do {
    //instrukcje...
    while( warunek );
   
}

Poza tym, jeżeli zmienna liczba nie zmienia swej wartości wewnątrz pętli, to warunek liczba > 0 będzie zawsze spełniony, czyli będziesz miał pętlę nieskończoną.
P-90626
Cola
Temat założony przez niniejszego użytkownika
» 2013-08-20 19:20:31
Dzięki, już poprawiłem!
Mam teraz inne pytanie, jaka jest komenda po to ,aby program nie wyłączył się po wykonaniu kodu?
Dzięki za pomoc!
P-90646
pekfos
» 2013-08-20 19:24:19
getch() z <conio.h>, cin.get(), itp, albo nawet zwykła pętla nieskończona for(;;) lub while(1).
P-90647
Cola
Temat założony przez niniejszego użytkownika
» 2013-08-20 19:29:26
Dzięki, do zamknięcia.
P-90648
« 1 »
  Strona 1 z 1