我正在为我的控制结构类编写一个程序,然后尝试对其进行编译。唯一的错误,至少是编译器选择的唯一错误是对二进制'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;

这也可以。

08-06 15:14