我正在为我的控制结构类编写一个程序,我正在尝试编译它。唯一的错误,至少是编译器拾取的唯一错误是将类型为'double'和'int'的无效操作数指向二进制'operator%'。大多数程序都不包括在内,因为它太长并且并不真正与这个问题有关,至少我不相信。
double maxTotal, minTotal;
cin >> maxTotal >> minTotal;
int addCalc;
static_cast<int>(maxTotal);
if(maxTotal % 2 == 1)
addCalc = minTotal;
else
addCalc = 0;
答案 0 :(得分:5)
您的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;
这也可以。
答案 1 :(得分:0)
您应该将演员表分配给变量,否则它不会做任何事情。 static_cast<int>(maxTotal)
将返回int
double maxTotal, minTotal;
cin >> maxTotal >> minTotal;
int addCalc;
int i_maxTotal = static_cast<int>(maxTotal);
if(i_maxTotal % 2 == 1)
addCalc = minTotal;
else
addCalc = 0;