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