Я хочу убедиться, что все 3 условия приводят к одному и тому же ответу перед выполнением блока управления:
#include <iostream>
#include <cstdlib>
int main(){
///BUT THIS DOES NOT WORK!
if ( (2 + 2) == (1 + 3) == (4 + 0) ){
std::cout << "not executed" << std::endl;
}
return EXIT_SUCCESS;
}
Допустим, эти числа на самом деле являются переменными.Вот что мне нужно сделать:
#include <iostream>
#include <cstdlib>
int main(){
int n1 = 2;
int n2 = 2;
int n3 = 1;
int n4 = 3;
int n5 = 4;
int n6 = 0;
int a = n1 + n2;
///this works
if ( (n3 + n4) == a && (n5 + n6) == a){
std::cout << "executed!" << std::endl;
}
return EXIT_SUCCESS;
}
вопрос: почему мой первый пример не работает?
Я могу присвоить нескольким переменным одно и то же значение, например так:
#include <iostream>
#include <cstdlib>
int main(){
int a,b,c,d;
a=b=c=d=9;
///prints: 9999
std::cout <<a<<b<<c<<d<<'\n';
return EXIT_SUCCESS;
}
в надежде, что кто-нибудь сможет объяснить, почему этот метод оценки не работает.
Недавно он привлек мое внимание при написании оператора if, который определяет, является ли массив nxn магическим квадратом или нет.