我正在用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;
}
有什么建议吗?
答案 0 :(得分:2)
您的代码存在一些问题:要测试是否使用==
运算符(而不是赋值=
运算符)。
E.g。
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
值。
答案 1 :(得分:1)
你的代码中有几个错误,最糟糕的是你不应该将“a”声明为char,从你的代码看起来应该是std :: string。你还应该注意以下代码是错误的
if (a = "automovil" && b <= 1980){
你应该使用
if (a == "automovil" && b <= 1980){
答案 2 :(得分:0)
您的代码中存在大量错误:
首先,您需要将a
和b
声明为std:string
,而不是char
。
第二次,您需要使用==
来比较两个变量,而不是=
,它是赋值运算符。
第三次,您需要在计划结束时cout << d;
而不是cin >> d;