我正在为我的控制结构类编写一个程序,然后尝试对其进行编译。唯一的错误,至少是编译器选择的唯一错误是对二进制'operator%'说无效的类型'double'和'int'的操作数。由于该程序太长,并且与该问题并没有真正的关系,因此并未包括其中的大多数程序,至少我不相信。
double maxTotal, minTotal;
cin >> maxTotal >> minTotal;
int addCalc;
static_cast<int>(maxTotal);
if(maxTotal % 2 == 1)
addCalc = minTotal;
else
addCalc = 0;
最佳答案
您的static_cast没有执行任何操作。您应该做的是:
if(static_cast<int>(maxTotal) % 2 == 1)
C++中的变量不能更改类型。静态转换返回转换值,它不会更改输入变量的类型,因此您必须直接使用它或对其进行赋值。
int iMaxTotal = static_cast<int>(maxTotal);
if(iMaxTotal % 2 == 1)
addCalc = minTotal;
else
addCalc = 0;
这也可以。