Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda


Guest --Antonio --

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

  • 0
Guest --antonio --

Consegui consertar o código, mas agora ele executa mas não funciona direito, o que tem de errado nee?

o código

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.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 insert(char **item);

void insert(char **item){
     register int c, d;
     char *key;
     for(c=atual+1; c<=pos; c++){
                  key=item[c];
                  d = c-1;
                  while(d>atual && item[d]>key){
                                item[d+1] = item[d];
                                d--;
                                }
                  item[d+1] = key;
                  }
                  }


void ordena(){
     
    int i;
     insert(Lista);
             
             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);
      scanf("%s", s);
      p = malloc(strlen(s));
      if(!p){
             printf("Sem memoria!\n");
             return 0;
             }
      strcpy(p,s);
      if(*s){
             if(pos==100){
                          printf("lista cheia!");
                          return 0;}
             Lista[pos]= p;
             pos++;
             ordena();
             return 1;
             }
             }
      
int Busca(){
    int posi;
    char s[80];
    printf("Entre com o item que voce deseja localizar\n");
    gets(s);
    for(posi=0;posi<100;posi++){
                                if(!strcmp(Lista[posi],s))
                                                            return posi++;
}
    printf("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){
                    printf("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

  • 0
Guest --Antonio --

Consegui consertar o código, mas agora ele executa mas não funciona direito, o que tem de errado nele? ele era para ordenar a lista, mas não ordena, e no mais tudo funciona direito

o código

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.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 insert(char **item);

void insert(char **item){
     register int a, b;
     char *key;
     for(a=atual+1; a<pos; ++a){
                  key=item[a];
                  for(b=a-1; b>=atual && key<item[b]; b--){
                             item[b+1]=item[b];}
                             item[b+1] = key;
                             
                  }
                  }


void ordena(){
     
    int i;
     insert(Lista);
             
             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);
      scanf("%s", s);
      p = malloc(strlen(s));
      if(!p){
             printf("Sem memoria!\n");
             return 0;
             }
      strcpy(p,s);
      if(*s){
             if(pos==100){
                          printf("lista cheia!");
                          return 0;}
             Lista[pos]= p;
             pos++;
             ordena();
             return 1;
             }
             }
      
int Busca(){
    int posi;
    char s[80];
    printf("Entre com o item que voce deseja localizar\n");
    scanf("%s", s);
    for(posi=0;posi<100;posi++){
                                if(!strcmp(Lista[posi],s))
                                                            return posi++;
}
    printf("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){
                    printf("Numero inexistente\n");
                    }
     else{
     if(Lista[i+atual-1]==NULL){
                        printf("O item não existe\n");
                        }
     else{
          Lista[i+atual-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+1);
                    break;
               case 4:
                    exibir();
                    break;
               case 5:
                    exit(0);
                    break;
               default:
                       printf("Opcao invalida\n");
                       }}}

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...