Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Hilfe bei Übung benötigt

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.12.2018, 22:14 Uhr
CODEJo



Hallo Programmierer,

ich benötige Hilfe bei meiner Übung.

Die Übung ist eine in Visual Studio programmierte Übung die eine Prämie für Mitarbeiter ausrechnen soll. Also If Else.

Fehler: Wenn man das Programm ausführt und Rechnen möchte werden die Multiplikationszeichen ignoriert (*0.05, 0.10 etc.). Bitte um Hilfe und bedanke mich im Voraus.

C++:
#include <iostream>
#include <cmath>
#include <iomanip>

using namespace std;

double Vorjahreslohn, Zugehoerigkeit, Praemie;


int main()

{

    cout << setw(20) << (left) << "Betriebszugehoerichkeit" << setw(20) << (right) << "Praemienzahlung\n";
    cout << setw(20) << (left) << "0 bis unter 2 Jahre" << setw(20) << (right) << "5%\n";
    cout << setw(20) << (left) << "2 bis unter 5 Jahre" << setw(20) << (right) << "10%\n";
    cout << setw(20) << (left) << "5 bis unter 15 Jahre" << setw(20) << (right) << "15%\n";
    cout << setw(20) << (left) << "15 bis mehr Jahre" << setw(20) << (right) << "10%\n";

    cout << "\n\n\n";
    cout << "Vorjahreseinkommen: ";
    cin >> Vorjahreslohn;
    cout << "\n\n\n";
    cout << "Wie viele Jahre sind Sie bei der Firma: ";
    cin >> Zugehoerigkeit;
    cout << "\n\n\n";

    if (Zugehoerigkeit < 2)
    {
        Praemie = Vorjahreslohn*0.05;
    }
    else
    {
        if (2 <= Zugehoerigkeit < 5)
        {
            Praemie = Vorjahreslohn * 0.10;
        }
        else
        {
            if (5 <= Zugehoerigkeit < 15)
            {
                Praemie = Vorjahreslohn * 0.15;
            }
            else
            {
                Praemie = Vorjahreslohn * 0.20;

            }
        }
    }
    cout << "Ihre Praeie betraegt: " << Praemie;
    

    cin.get(); cin.get();
    return 0;

}



-----
Edit: cpp-Tags eingesetzt.

Dieser Post wurde am 23.12.2018 um 22:56 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.12.2018, 22:54 Uhr
Hans
Library Walker
(Operator)


Hi,
solche Abfragen

C++:
if (2 <= Zugehoerigkeit < 5)

funktionieren nicht. - Da sollte der Compiler eigentlich 'nen Fehler melden.
Richtig muss das
C++:
if (2<= Zugehoerigkeit || Zugehoerigkeit <5)


heissen, damit der Compiler nicht meckert.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.12.2018, 07:48 Uhr
ao

(Operator)


Nicht ganz. Die Ungleichungskette löst keinen Compilerfehler aus, vielmehr ist sie ein gültiger Ausdruck, der von links nach rechts ausgewertet wird. Ich setze mal Klammern, um die Reihenfolge zu verdeutlichen:


C++:
if ((2 <= Zugehoerigkeit) < 5)


Der linke Teil (2 < Zugehoerigkeit) wird ausgewertet, und das Ergebnis ist entweder false oder true, entsprechend 0 oder 1 in Zahlen. Das wird anschließend auf "< 5" geprüft, was immer true ist.

Klar, dass das nicht das ist, was man will. Deshalb muss man es so ähnlich formulieren wie oben, aber nicht mit || (Oder-Verknüpfung), sondern mit && (Und-Verknüpfung).
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: