2016-07-23 4 views
-2

Ich mache einen Steuerrechner in C++, aber ich habe einen Fehler Es soll mehrere Daten eingeben: Art des Fahrzeugs, Datum und Modell. Aber das Programm fragt mich erst einmal vor Pause und geht nicht weiter.Steuerrechner Pause Programm

Es wird angenommen, dass die Operation wie folgt ist: Sie geben einen Fahrzeugtyp, dann das Ausstellungsdatum und schließlich seinen Preis ein.

Angesichts dieser Daten soll das Programm den Prozentsatz der Steuern berechnen, die enthalten sein müssen.

Aber wie gesagt, das Programm wird pausiert, bevor die zweiten Daten, das Jahr gefragt werden.

Dies ist der Code

#include <iomanip> 
#include <iostream> 

using namespace std; 

int main(){ 

std:string a;//tipo 
int b;//año 
double c;//precio 
char d;//resultado 

cout << "Ingrese el tipo:"; 
cin >> a; 

cout << "Ingrese el año:"; 
cin >> b; 

cout << "Ingrese el precio:"; 
cin >> c; 

if (a = "automovil" && b <= 1980){ 
    d = c*100/3.3; 
    }else if (a == "automovil" && b <= 1990){ 
     d = c*100/5.5; 
    }else if (a == "automovil" && b <= 2000){ 
     d = c*100/7; 
    }else if (a == "automovil" && b <= 2010){ 
     d = c*100/10; 
    }else if (a == "camioneta" && b <= 1980){ 
     d = c*100/3.3; 
    }else if (a == "camioneta" && b <= 1990){ 
     d = c*100/5.5; 
    }else if (a == "camioneta" && b <= 2000){ 
     d = c*100/7; 
    }else if (a == "camioneta" && b <= 2010){ 
     d = c*100/10; 
    }else if (a == "camion" && b <= 1980){ 
     d = c*100/3.3; 
    }else if (a == "camion" && b <= 1990){ 
     d = c*100/5.5; 
    }else if (a == "camion" && b <= 2000){ 
     d = c*100/7; 
    }else if (a == "camion" && b <= 2010){ 
     d = c*100/10; 
    }else if (a == "volqueta" && b <= 1980){ 
     d = c*100/3.3; 
    }else if (a == "volqueta" && b <= 1990){ 
     d = c*100/5.5; 
    }else if (a == "volqueta" && b <= 2000){ 
     d = c*100/7; 
    }else if (a == "volqueta" && b <= 2010){ 
     d = c*100/10; 
    } 

cout << d; 

return 0; 
} 

irgendwelche Vorschläge?

+1

'cin >> d;' meinst du 'cout << d;'? – DimChtz

+0

Wenn das die Ausgabe Nic ist, warum wirst du es "eingeben" und nicht "ausgeben"? Warum denkst du, dass "cout << d" nicht die Lösung ist? –

+0

Drücken Sie nach dem Einfügen des Fahrzeugtyps die Eingabetaste? –

Antwort

2

Einige Probleme mit Ihrem Code: Um auf Gleichheit zu prüfen, verwenden Sie den Operator == (nicht die Zuweisung = Operator).

z.

if (a = "automovil" && b <= 1980) 

... 
else if (a = "automovil" && b <= 1990){ 

Sollte

if (a == "automovil" && b <= 1980) 

... 
else if (a == "automovil" && b <= 1990){ 

Und Ihre letzte Zeile erwartet Sie etwas zu der Standardeingabe schreiben sein. Wie in den Kommentaren war denke ich, wenn Sie wirklich Ihr berechnet testen d Wert wollten, sollten Sie es auf die Standardausgabe wie so drucken:

cout << d << endl; 

Da zur Zeit, was passiert ist überschreiben Sie den d Wert, den Sie einmal berechnet Sie geben etwas in die Standardeingabe ein.

1

Es gibt einige Fehler in Ihrem Code, vor allem scheint es unwahrscheinlich, dass Sie "a" als char deklarieren sollten, aus Ihrem Code scheint es stattdessen eine std :: string sein. Sie sollten auch beachten, dass der folgende Code

if (a = "automovil" && b <= 1980){ 

Sie in Ihrem Code

if (a == "automovil" && b <= 1980){ 
+0

bitte erläutern, weil ich eingeben "string" als Datentyp und erkennt –

+0

diesen Fehler nicht: http://mindshat.xyz/uploads/default/original/1X/04ab92b6dfe6d013c01e653a59ea30036acb4d14.JPG –

+0

@NicolasEcheverry Sie müssen sie als Zeichenfolge deklarieren. Siehe meine Antwort –

0

Es gibt eine Reihe von Fehlern falsch verwenden sollten:

Erste, müssen Sie a erklären und b als std:string und nicht char.

Zweite, müssen Sie == verwenden, um zwei Variablen zu vergleichen und nicht =, die der Zuweisungsoperator ist.

Third, müssen Sie am Ende Ihres Programms cout << d; und nicht cin >> d;

+0

erhalte ich diesen Fehler http://mindshat.xyz/uploads/default/original/1X/45f773074add8945c6f554279304a556aa87c345.JPG –

+0

warum Sie verwenden '=?' anstelle von '==' ?? Und editiere dein OP und füge den ganzen Code hinzu bitte –

+0

@include add '#include ' und du vermisst noch eins '==' das ist das erste '(a =" automovil "&& b <= 1980)' –