Я делаю налоговый калькулятор в 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;
}
какие-либо предложения?
Некоторые проблемы с вашим кодом: для проверки на равенство используйте ==
оператор (не назначение =
оператор).
Например.
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
значение, которое вы вычислили после ввода чего-либо в стандартный ввод.
в вашем коде есть несколько ошибок, прежде всего кажется маловероятным, чтобы вы объявляли «a» как символ, из вашего кода кажется, что вместо него должна быть std :: string. Вы также должны отметить, что следующий код неверен
if (a = "automovil" && b <= 1980){
ты должен использовать
if (a == "automovil" && b <= 1980){
В вашем коде куча ошибок:
Первый, вам нужно объявить a
а также b
как std:string
и не char
,
второй, вам нужно использовать ==
сравнивать две переменные а не =
который является оператором присваивания.
В третьих, вам нужно cout << d;
в конце вашей программы, а не cin >> d;