Comentario d codigo

5 respostas
D

sera q alguem podia dar uma ajudinha para comentar esse codigo........

#include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    typedef struct cliente
    {
           char nome[50];
           char endereco[100];
           int cpf;
           int fone;
           struct cliente *prox;
    } DadoCliente;
    

    void insere_ordenado(DadoCliente **cabeca_cliente);

    void insere_ordenado(DadoCliente **cabeca_cliente)
    {  
     
       char aux[50];
       int num;  
       char endereco[100];
       int cpf;
       int fone;
    
       printf("CPF: ");   
       scanf("%d%*c",&num);
       int achou = 0;
    
      
       DadoCliente *novo = malloc(sizeof(DadoCliente));
       DadoCliente *ant = NULL; 
       DadoCliente *p = *cabeca_cliente; 
    
       while( p != NULL )
       {   
          if (p->cpf == num)
          {
             printf("CPF %d ja cadastrado!!\n nao inserido!!",num );
             achou = 1;
             p = NULL ;
          }
          else
          {
             ant = p;
             p = p->prox;                            
          }
       } 
              
       if ( achou != 1 )
       {
          novo->cpf = num;
          printf("Nome: ");
          scanf("%49[^\n]",aux);    
          strcpy(novo->nome, aux);          
          printf("Telefone: ");   
          scanf("%d%*c",&fone);
          novo-> fone = fone; 
          printf("Endereco: ");
          scanf("%99[^\n]",endereco);
          strcpy(novo->endereco, endereco);  
          ant = NULL;
          p = *cabeca_cliente;   
          while( p != NULL )
          {    
             if ( strcmp(p->nome, aux) < 0 || strcmp(p->nome, aux)== 0)
             {
                ant = p;
                p = p->prox;               
             }
             else if ( strcmp(p->nome, aux) > 0 )
             {
                p = NULL; 
             } 
          }
          if (ant == NULL)  
          {
             novo->prox = *cabeca_cliente;
             *cabeca_cliente = novo;           
          }
          else 
          {
             novo->prox = ant->prox;
             ant->prox = novo;
          } 
       }
    }

5 Respostas

fiaux

Outro… pô cara, vai querer que a pessoa entenda o código para depois comentar ele? Qual a dificuldade nisso. Tem que aprender a fazer isso…

D

a maior dificuldade em comentario é nessa parte
void insere_ordenado(DadoCliente **cabeca_cliente) .
ponteiro de ponteiro.
porque nesse procedimento foi passado a(DadoCliente **cabeca_cliente)???
essa é a maior duvida, mandei todo o codigo pra pessoa da uma olhada geral

Kassiane_Pretti

Só uma perguntinha…
Foi vc que fez esse código?
E da proxima vez use:

Para poder ficar melhor de entender seu código.
Q olhando assim fica complicado te ajudar.

peerless

Mas este código por sí ja está comentado! Se sua dúvida é nos métodos do C, basta usar o google e procurar o que faz cada um. Mas as variaveis estão auto-explicativas.

Kassiane_Pretti
void insere_ordenado(DadoCliente **cabeca_cliente)

cabeca_cliente foi passada como ponteiro para ponteiro, pois todas as modificações realizadas na variavel nesta função serão visiveis fora do escorpo da função de ordenação, isto é, se vc chamou a função na main e a cabeca_cliente->prox estiver apontando para o endereço ox2F de memoria e de dento da função for modificado para 0xFF quando sair da função e cabeca_cliente->prox valerá 0xFF.

Entendeu?

Criado 1 de julho de 2008
Ultima resposta 2 de jul. de 2008
Respostas 5
Participantes 4