考虑到68 + 32等输入的表达式,我们必须在程序中不使用分号进行评估。如果它将在if或for循环中? 参考:https://www.spoj.pl/problems/EXPR2/
答案 0 :(得分:6)
你可以使用这样的结构:
if (i++) {}
但是,仍然没有回答如何声明变量。但是,你可以做的一个技巧是:
#include <iostream>
int main(double x, double y) {
if ((x = 1)) {}
if ((y = 2)) {}
if (std::cout << x << ", " << y << std::endl) {}
}
当然,你会收到在主参数列表中使用错误类型的警告,但它会起作用。
答案 1 :(得分:6)
您可以使用if和comma运算符,如下所示:
if( expr1, expr2, expr3, ... ) {}
这相当于
expr1;
expr2;
expr3;
...
要使用没有任何警告的变量,您可以定义一个函数来接收您从main调用所需的数据类型,如下所示:
void myFunc(int a, double b) {
if ( expr1, expr2 ) { }
}
int main() {
if ( myFunc(0, 0), 0 ) { }
}
请注意,您需要在main中添加, 0
,否则会引发错误,因为不会忽略void返回。