As already mentioned, the relational operators are binary operators (take two operands) and they return a bool.
We could use functions rather than operators: bool AlessthanB( float A, float B ); // returns same as A < B
Now, lets write x < y < z with that function:
1 2 3 4
float x, y, z;
if ( AlessthanB( AlessthanB( x, y ), z ) ) // error
{
}
Lets do that in steps:
1 2 3 4
bool XY = AlessthanB( x, y );
if ( AlessthanB( XY, z ) ) // error
{
}
The XY is a bool, but the AlessthanB() requires float.
Sadly, the x < y < z is not an error; there are implicit conversions, but the compiler should warn about it.
There is a way to write the tests without the logical AND (&&); nested ifs:
IF A<B
THEN // A is not the greatest
IF C<B
THEN B
ELSE C
ELSE // B is not the greatest
IF C<A
THEN A
ELSE C
Humans are smarter than computers. It cannot understand (A < x < B)
But it does understand (x > A && x < B).
Your logic is also faulty.
(numero>numero2<numero3) checks for if both "numero" and "numero3" is greater than "numero 2", not if "numero" is greatest, if that's what you're aiming for.
Using "else" for the last statement is wrong because you don't know if that else statement means "if numero3 is the greastest", "else" rather means EVERYTHING ELSE.