sexta-feira, 11 de setembro de 2015

Lista Array , Função - Inserir - Excluir - Consulta - Ordenar

#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");
}

Nenhum comentário:

Postar um comentário