No necesitas usar tantos if ni hacerlo tan farragoso.
En primer lugar usa una directiva de preprocesador que imprima una función para concluri el número mayor.
Código C++:
Ver original#define gmax(a,b) ((a)>(b)?(a):(b))
#define gmin(a,b) ((a)<(b)?(a):(b))
using namespace std;
int main(){
int n1,n2,n3, max1, max2, min1,min2;
// scanfs
max2 = gmax(n1,n2); // intermedio mayor
max1 = gmax(n3,max2); // mayor de los 3
min2 = gmin(n1,n2); // intermedio menor
min1 = gmin(n3,min2); // menor de los 3
printf("Los numeros en orden descendente son: %d,%d,%d\n",max1
,max2
, min1
); return 0;
}