0
When I type 3, instead of asking for the Position I want to enter, it returns 'Invalid Option'. Could anyone tell me why? Follow the code:
 #include<stdio.h>
#include<stdlib.h>
int Lista[5];
void Esvaziar()
{
    for(int x=0;x<5;x++)
    {
        Lista[x]=0;
    }
    printf("Lista esvaziada com sucesso!\n");
    _sleep(2000);
}
void Imprimir()
{
    for(int x=0;x<5;x++)
    {
        printf("[%d]",Lista[x]);
    }
    _sleep(2000);
}
int ListaVazia()
{
    if(Lista[0]==0)
    {
        return 0;//se ele retornar 0, a lista esta vazia
    }
    else
    {
        return 1;//se ele retornar 1, a lista não esta vazia
    }
}
int ListaCheia()
{
    if(Lista[4]!=0)
    {
        return 1;//se ele retornar 1, a lista esta cheia
    }
    else
    {
        return 0;// se ele retornar 0, a lista não esta cheia
    }
}
void Insere()
{
    int pos=0,valor;
    if(Lista[0]!=0)
    {
        printf("\nPosicao: ");
        scanf("%d",&pos);
    }   
    if(pos>=0 && pos<=4 && Lista[pos-1]!=0)
    {
        printf("\nValor: ");
        scanf("%d",&valor); 
        if(Lista[0]==0)
            Lista[0]=valor;
        else if(Lista[pos]!=0)
        {
            for(int x=4;x>pos;x--)
            {
                Lista[x]=Lista[x-1];    
            }       
            Lista[pos]=valor;
        }
        else if(Lista[pos-1]!=0 && Lista[pos]==0)
        {
            Lista[pos]=valor;
        }
    }
    else
    {
        printf("Posicao invalida\n");
        system("pause");
    }
}
void Retirar()
{
    int valor;
    printf("Valor: ");
    scanf("%d",&valor);
    if(valor==0)
    {
        printf("Valor invalido\n");
        _sleep(1000);
    }
    else
    {
        for(int x=0;x<5;x++)
        {
            if(valor==Lista[x])
            {
                if(Lista[x+1]==0)
                {
                    Lista[x]=0;
                }
                else
                {
                    while(x<4)
                    {
                        Lista[x]=Lista[x+1];
                        x++;
                    }
                    Lista[4]=0;
                }
            }
        }
    }
}
void Alterar()
{
    int pos, valor;
    printf("Posicao: ");
    scanf("%d",&pos);
    if(Lista[pos]==0)
    {
        printf("Posicao invalida\n");
        _sleep(1000);
    }
    else
    {
        printf("Valor: ");
        scanf("%d",&valor);
        if(valor == 0)
        {
            printf("Valor invalido\n");
            _sleep(1000);
        }
        else
        {
            Lista[pos]=valor;
        }
    }
}
int Menu()
{
    int opcao;
    printf("0 - Sair\n");
    printf("1 - Esvaziar\n");
    printf("2 - Imprimir\n");
    printf("3 - Inserir\n");
    printf("4 - Retirar\n");
    printf("5 - Alterar\n");
    printf("OPCAO: ");
    scanf("%d",&opcao);
    return opcao;
}
main()
{
    int op,verifica;
    do{ 
        system("cls");
        op=Menu();
        if(op==1)
        {
            Esvaziar();
        }
        else if(op==2)
        {
            Imprimir();
        }
        else if(op==3)
        {
            verifica=ListaCheia();
            if(verifica==1)
            {
                printf("Lista esta cheia\n");
                _sleep(1000);
            }
            else
                Insere();
        }
        else if(op==4)
        {
            verifica=ListaVazia();
            if(verifica==0)
            {
                printf("Lista vazia\n");
                _sleep(1000);
            }
            else 
                Retirar();
        }
        else if(op==5)
        {
            verifica=ListaVazia();
            if(verifica==0)
            {
                printf("Lista vazia\n");
                _sleep(1000);
            }
            else 
                Alterar();
        }
    }while(op!=0);
}
This code will never display "Invalid Option".
– sbrubes