цикл while не заканчивается логическим условием

Этот цикл не прекратится, если я добавлю условное выражение ИЛИ. Если один ложный, то он должен прекратить.

// глобальная переменная

int x = 100;
    char *n= malloc (64);

void add(void)
{       

    do      
    {
        printf("Would you like to add 1? (y/n) ");
        fgets(n, 64, stdin);
            //removes newline
        n[strlen(n)-1] = '\0';
            x++;
    }       
//if I add || (x!=100) it keeps looping me even if I press "n"
//otherwise without it it works fine

        while((strncmp(n, "n", 1) != 0) || x!=100 );

        free(n);
}

Ответы на вопрос(5)

Ваш ответ на вопрос