Проблема с логикой if-else

Не видит if (x<0) printf ("\n Функцiя не iснує \n"); if (x>=20) printf ("\n Функцiя не iснує \n").

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>

 int main()

 {

 setlocale (LC_ALL, "Ukr");
 float x, y;

 printf ("\n Введiть значення x = ");
 scanf ("%f", &x);

{

if (x<-4) printf ("\n y = %f \n", x-5);
else if (x<0) printf ("\n Функцiя не iснує \n");
     else if (0<=x<20) printf ("\n y = %f \n", 9 * pow(x,4) + 1);
          else if (x>0) printf ("\n Функцiя не iснує \n");
               else if (31<=x<=32) printf ("\n y = %f \n", 9 * pow(x,4) + 1);
                    else if (x>=20) printf ("\n Функцiя не iснує \n");

}

return 0;

}

Ответы (1 шт):

Автор решения: KoVadim

Вот так писать

31<=x<=32

нельзя. Оно хоть и компилится, но не работает, как ожидается

Надо вот так

31 <= x &&  x <= 32

хотя по факту это

x == 31 || x == 32

и там таких ещё много.

→ Ссылка