программа паузы налогового калькулятора

Я делаю налоговый калькулятор в C ++, но у меня есть ошибка
Предполагается ввести несколько данных: тип автомобиля, дата и модель.
Но программа спрашивает меня только один перед паузой и не идет вперед.

Предполагается, что операция выглядит следующим образом:
Вы вводите тип транспортного средства, затем дату выдачи и, наконец, его цену.

Учитывая эти данные, программа должна рассчитать процент налога, который должен быть включен.

Но, как я уже сказал, программа ставится на паузу, прежде чем запрашивать вторые данные, год.

Это код

#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;
}

какие-либо предложения?

-2

Решение

Некоторые проблемы с вашим кодом: для проверки на равенство используйте == оператор (не назначение = оператор).

Например.

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

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

Должно быть

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

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

И ваша последняя строка ожидает, что вы напишите что-то для стандартного ввода. Как было в комментариях, я думаю, если вы действительно хотите проверить свои расчетные d Значение, которое вы должны вывести на стандартный вывод, выглядит так:

cout << d << endl;

Потому что в настоящее время происходит перезапись d значение, которое вы вычислили после ввода чего-либо в стандартный ввод.

2

Другие решения

в вашем коде есть несколько ошибок, прежде всего кажется маловероятным, чтобы вы объявляли «a» как символ, из вашего кода кажется, что вместо него должна быть std :: string. Вы также должны отметить, что следующий код неверен

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

ты должен использовать

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

В вашем коде куча ошибок:

Первый, вам нужно объявить a а также b как std:string и не char,

второй, вам нужно использовать == сравнивать две переменные а не = который является оператором присваивания.

В третьих, вам нужно cout << d; в конце вашей программы, а не cin >> d;

0
По вопросам рекламы [email protected]