Gente tenho um trabalho para fazer que é escrever o código de uma lista ordenada, onde possa, remover, inserir, exibir, buscar... pois é eu fiz o codigo, compila e tudo sem nenhum problema, a menos de uma obsevação que é "stl_deque.h: No such file or directory". E ele não executa de jeito nenuhm. alguém me ajuda?
o código:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <stl_deque.h>
char *Lista[100];
int pos=0, atual=0;
void ordena(void);
int InsereItem(void);
int Busca(void);
void exibir(void);
void remover(void);
void ordena(){
int i;
insert(Lista, atual, pos);
for(i=atual; i<=pos; i++){
if(Lista[i]!=0){
atual = i;
break;
}
}
}
int InsereItem() {
char s[80], *p;
int i;
printf("Entre com o %dº elemento da lista\n", pos+1);
gets(s);
if(*s==0) return 0;
p = malloc(strlen(s));
if(!p){
printf("Sem memoria!\n");
return 0;
}
strcpy(p,s);
if(*s){
if(pos==100){
print("lista cheia!");
return 0;}
Lista[pos]= p;
pos++;
ordena();
}
}
int Busca(){
int posi;
char s[80];
print("Entre com o item que voce deseja localizar\n");
gets(s);
for(posi=0;posi<100;posi++){
if(!strcomp(Lista[posi],s))
return posi++;
}
print("não existe!\n");
return -1;
}
void exibir(){
int i;
for(i=0; i<100; i++){
if(Lista[i]==NULL);
else{
printf("%d - &s\n", i-atual+1, Lista[i]);
}
}
}
void remover(){
int i;
exibir();
printf("Digite a posicao do item.\n");
scanf("%d", &i);
if(i>100||i<1){
printif("Numero inexistente");
}
else{
if(Lista[i+1]==NULL){
printf("O item não existe");
}
else{
Lista[i+1] = NULL;
ordena();
}
}
}
int main(void){
int i;
for(i=0; i<100; i++){
Lista[i]= NULL;
}
while(i!=5){
printf("Digite a opcao correspondente:\n 1- Inserir;\n 2- Remover;\n 3- Buscar; \n 4- Exibir;\n 5- Sair.\n");
scanf("%d",&i);
switch(i){
case 1:
i = InsereItem();
break;
case 2:
remover();
break;
case 3:
i = Busca();
printf("Esta na posicao %d\n", i);
break;
case 4:
exibir();
break;
case 5:
exit(0);
break;
default:
printf("Opcao invalida\n");
}}}
Pergunta
Guest --Antonio --
Gente tenho um trabalho para fazer que é escrever o código de uma lista ordenada, onde possa, remover, inserir, exibir, buscar... pois é eu fiz o codigo, compila e tudo sem nenhum problema, a menos de uma obsevação que é "stl_deque.h: No such file or directory". E ele não executa de jeito nenuhm. alguém me ajuda?
o código:
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #include <stl_deque.h> char *Lista[100]; int pos=0, atual=0; void ordena(void); int InsereItem(void); int Busca(void); void exibir(void); void remover(void); void ordena(){ int i; insert(Lista, atual, pos); for(i=atual; i<=pos; i++){ if(Lista[i]!=0){ atual = i; break; } } } int InsereItem() { char s[80], *p; int i; printf("Entre com o %dº elemento da lista\n", pos+1); gets(s); if(*s==0) return 0; p = malloc(strlen(s)); if(!p){ printf("Sem memoria!\n"); return 0; } strcpy(p,s); if(*s){ if(pos==100){ print("lista cheia!"); return 0;} Lista[pos]= p; pos++; ordena(); } } int Busca(){ int posi; char s[80]; print("Entre com o item que voce deseja localizar\n"); gets(s); for(posi=0;posi<100;posi++){ if(!strcomp(Lista[posi],s)) return posi++; } print("não existe!\n"); return -1; } void exibir(){ int i; for(i=0; i<100; i++){ if(Lista[i]==NULL); else{ printf("%d - &s\n", i-atual+1, Lista[i]); } } } void remover(){ int i; exibir(); printf("Digite a posicao do item.\n"); scanf("%d", &i); if(i>100||i<1){ printif("Numero inexistente"); } else{ if(Lista[i+1]==NULL){ printf("O item não existe"); } else{ Lista[i+1] = NULL; ordena(); } } } int main(void){ int i; for(i=0; i<100; i++){ Lista[i]= NULL; } while(i!=5){ printf("Digite a opcao correspondente:\n 1- Inserir;\n 2- Remover;\n 3- Buscar; \n 4- Exibir;\n 5- Sair.\n"); scanf("%d",&i); switch(i){ case 1: i = InsereItem(); break; case 2: remover(); break; case 3: i = Busca(); printf("Esta na posicao %d\n", i); break; case 4: exibir(); break; case 5: exit(0); break; default: printf("Opcao invalida\n"); }}}Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.