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

Instrukcja if...else

Ostatnio zmodyfikowano 2018-12-01 14:54
Autor Wiadomość
KolanoPigmeja
Temat założony przez niniejszego użytkownika
Instrukcja if...else
» 2018-12-01 13:47:56
Cześć i czołem.
Spróbowałem zrobić zapętlający się program obliczający pola figur płaskich uwzględniający poprawność danych przy pomocy instrukcji if...else.
Jeżeli zmienna zgadza się z wartościami uwzględnionymi w if, wszystko działa dobrze. Jednak gdy jest różna nic się nie dzieje, else się nie odpala, a program się zapętla tak jak powinien. Ktoś coś?
Tu kod:
C/C++
#include <iostream>
using namespace std;

int main()
{
    float a, b, x;
    char figure;
    cout << "-------------------------------------------------------------------------\n";
    cout << "                Welcome to the UltimateAreaCounter2136\n";
    cout << "-------------------------------------------------------------------------\n";
    cout << "[press ctrl+c to exit]\n\n";
    for(;; )
    {
        cout << "Pick a figure which area you are counting: \n";
        cout << "s-square, r-rectangle, t-triangle, c-circle.\n\n";
        cout << "Type here:";
        cin >> figure;
        if( figure != 's', 'r', 't', 'c', 'S', 'R', 'T', 'C' )
        {
            switch( figure )
            {
            case 's':
                cout << "\nYou chose a square";
                cout << "\nPlease enter a lenght of a flank of the square: ";
                cin >> a;
                x = a * a;
                cout << "\nArea equals: " << x;
                break;
            case 'S':
                cout << "\nYou chose a square";
                cout << "\nPlease enter a lenght of a flank of the square: ";
                cin >> a;
                x = a * a;
                cout << "\nArea equals: " << x;
                break;
            case 'r':
                cout << "\nYou chose a rectangle.";
                cout << "\nPlease enter a lenght of a first flank: ";
                cin >> a;
                cout << "\nPlease enter a lenght of a second flank: ";
                cin >> b;
                x = a * b;
                cout << "\nArea equals: " << x;
                break;
            case 'R':
                cout << "\nYou chose a rectangle.";
                cout << "\nPlease enter a lenght of a first flank: ";
                cin >> a;
                cout << "\nPlease enter a lenght of a second flank: ";
                cin >> b;
                x = a * b;
                cout << "\nArea equals: " << x;
                break;
            case 't':
                cout << "\nYou chose a triangle.";
                cout << "\nPlease enter a lenght of a baseline: ";
                cin >> a;
                cout << "\nPlease enter a lenght of a altitude: ";
                cin >> b;
                x = a * b / 2;
                cout << "\nArea equals: " << x;
                break;
            case 'T':
                cout << "\nYou chose a triangle.";
                cout << "\nPlease enter a lenght of a baseline: ";
                cin >> a;
                cout << "\nPlease enter a lenght of a altitude: ";
                cin >> b;
                x = a * b / 2;
                cout << "\nArea equals: " << x;
                break;
            case 'c':
                cout << "\nYou chose a circle.";
                cout << "\nPlease enter a lenght of a radius: ";
                cin >> a;
                x = a * 3.1415926535;
                cout << "\nArea equals: " << x;
                break;
            case 'C':
                cout << "\nYou chose a circle.";
                cout << "\nPlease enter a lenght of a radius: ";
                cin >> a;
                x = a * 3.1415926535;
                cout << "\nArea equals: " << x;
                break;
            }
        }
        else
             cout << "\nYou picked a wrong symbol fool! You can only use symbols mentioned in the legend";
       
        cout << "\n-------------------------------------------------------------------------\n";
    }
    return 0;
}
 
P-173067
pekfos
» 2018-12-01 14:02:33
C/C++
if( figure != 's', 'r', 't', 'c', 'S', 'R', 'T', 'C' )
Ten warunek jest zawsze prawdziwy, nie tak się zapisuje warunki. A gdyby działał, nie miałby sensu. Czego tu naprawdę potrzebujesz, to default w tym switch.

C/C++
case 't':
cout << "\nYou chose a triangle.";
cout << "\nPlease enter a lenght of a baseline: ";
cin >> a;
cout << "\nPlease enter a lenght of a altitude: ";
cin >> b;
x = a * b / 2;
cout << "\nArea equals: " << x;
break;
case 'T':
cout << "\nYou chose a triangle.";
cout << "\nPlease enter a lenght of a baseline: ";
cin >> a;
cout << "\nPlease enter a lenght of a altitude: ";
cin >> b;
x = a * b / 2;
cout << "\nArea equals: " << x;
break;
Wystarczy tak:
C/C++
case 't':
case 'T':
cout << "\nYou chose a triangle.";
cout << "\nPlease enter a lenght of a baseline: ";
cin >> a;
cout << "\nPlease enter a lenght of a altitude: ";
cin >> b;
x = a * b / 2;
cout << "\nArea equals: " << x;
break;
I pisze się length, a nie lenght.
P-173068
KolanoPigmeja
Temat założony przez niniejszego użytkownika
Działa
» 2018-12-01 14:54:01
Dobra dzięki wielke rzeczywiście dało się prościej :D.




P-173069
« 1 »
  Strona 1 z 1