saitam
(usa Slackware)
Enviado em 29/09/2009 - 16:50h
ta ai o fonte com algumas alterações.
PS: mandei um e-mail pra vc também.
#include <stdio.h>
#include <stdlib.h>
struct ficha
{
int valor;
};
int busca(int x, ficha lista[], int n)
{
int indice, i;
indice=-1, i=0;
while(i<n)
{
if(lista[i].valor == x){
indice = i;
i = n;
}
else
i++;
}
return indice;
}
int insercao (int x, ficha lista[], int n)
{
if (busca(x, lista, n)==-1)
{
lista[n].valor=x;
n++;
}
else
printf("Elemento já existe.");
}
int remocao(int x, ficha lista[], int n)
{
int i,indice;
indice=busca(x,lista,n);
if(indice!=-1){
for(i=indice;i<n-1;i++){
lista[i].valor=lista[i+1].valor;
}
n--;
}
else
printf("Elemento não existe");
}
int main()
{
ficha lista[20];
int j, valor_procurado, indice, opcao;
srand ((unsigned) time(NULL));
while(1){
printf("Digite qualquer tecla para iniciar geracao de lista\n)";
for(j=0; j<20; j++){
lista[j].valor = + rand() %100;
printf( "%i\n", lista[j].valor);
}
printf("\n");
printf("\nDigite uma opção: ");
printf("\n<1> Inserir elemento ");
printf("\n<2> Remover elemento ");
printf("\n<3> Buscar elemento");
printf("\n<4> Sair");
scanf("%i", &opcao);
while (opcao>=1 && opcao<=4){
switch (opcao){;
case (1): insercao();
break;
case (2): remocao();
break;
case (3): busca();
break;
case (4): sair();
break;
}
}
printf("\n\nDigite o valor a ser procurado na lista: ");
scanf(%i", &valor_procurado);
indice = busca(valor_procurado, lista, 20);
if(indice == -1)
printf("Nao ha na lista o valor procurado. ");
else
printf("O elemento procurado está na posicao: %i\n" ,indice+1);
getch();
system("clear");
}
return 0;
}