#include <stdio.h>
#define TAMANHO 3
void adicionar(int valor);
int quantidadeElementos();
int buscarPorIndice(int indice);
int buscarPorValor(int valor);
void excluir(int valor);
void ordenar();
void expandir();
void menu();
int posicao = 0;
int lista[TAMANHO];
int opcao;
int numero;
int indice;
int l = 0;
int main()
{
opcao = 0;
while(opcao !=8)
{
menu();
switch(opcao)
{
case 1:
printf("Digite o numero: ");
scanf("%d", &numero);
adicionar(numero);
break;
case 2:
printf("\n*** A lista possui %d elementos. ***\n\n", quantidadeElementos());
break;
case 3:
printf("Digite o indice: ");
scanf("%d", &indice);
numero = buscarPorIndice(indice);
if(numero == -1)
printf("\n*** Indice invalido! ***\n\n");
else
printf("\n*** Valor encontrado no indice %d = %d ***\n\n", indice, numero);
break;
case 4:
printf("Digite o numero: ");
scanf("%d", &numero);
indice = buscarPorValor(numero);
if(indice == -1)
printf("\n*** Nao encontrei %d na lista! ***\n\n", numero);
else
printf("\n*** Encontrei o valor %d no indice %d ***\n\n", numero, indice);
break;
case 5:
printf("\n Digite o valor para excluir: ");
scanf("%d", &numero);
excluir(numero);
break;
case 6:
printf("\n*** Ordenando...\n");
ordenar();
break;
case 7:
for(l=0; l < quantidadeElementos(); l++)
printf("lista[%d]=%d\n", l, buscarPorIndice(l));
break;
case 8:
printf(" \n*** Bay Bay ***\n");
break;
}
}
}
void menu()
{
printf("\n");
printf("1 - Adicionar\n");
printf("2 - Quantidade de Elementos\n");
printf("3 - Buscar por Indice\n");
printf("4 - Buscar por Valor\n");
printf("5 - Excluir\n");
printf("6 - Ordenar\n");
printf("7 - Listar\n");
printf("8 - Sair\n");
printf("Digite a sua opcao: ");
scanf("%d", &opcao);
printf("\n\n");
}
void adicionar(int valor)
{
if (posicao == TAMANHO){
printf("\n*** Lista Cheia!!! ***\n");
printf("\n\n");
}else{
lista[posicao] = numero;
posicao++;
}
}
int quantidadeElementos()
{
return posicao;
}
int buscarPorIndice(int indice)
{
if (indice < posicao){
return lista[indice];
}else{
return -1;
}
}
int buscarPorValor(int valor)
{
int i=-1;
for ( i = 0; i <= posicao; i++){
if (lista[i] == valor)
{
return i;
}
}
return -1;
}
void excluir(int valor)
{
int i=0, j=0;
for(i=0;i<posicao;i++){
if(lista[i] == valor){
for(j=i;j<posicao;j++){
lista[j] = lista[j+1];
}
posicao--;
printf("\n*** Retirado Valor %d da posicao %d ***\n", valor,i);
}
}
if (valor!=lista[i]){
printf("\n*** Valor %d Nao Existente ***\n",valor);
}
}
void ordenar()
{
int i, j, aux;
for( i=0; i<posicao; i++ ){
for( j=i+1; j<posicao; j++ ){
if( lista[i] > lista[j] ){
aux = lista[i];
lista[i] = lista[j];
lista[j] = aux;
}
}
}
printf("\n Ordenado com sucesso!!! ***\n\n");
}