Jump to content
Fórum Script Brasil
  • 0

programa só imprime o valor do primeiro nó(listas)


Question

Bom dia a todos.

Quando executo o código abaixo só imprime o valor armazenado no primeiro nó.

A função insere o nó no início da lista.

Estou usando Xcode em um macbook Air.

Alguém sabe qual o bug?

#include <stdio.h>
#include <stdlib.h>

// definição do tipo Lista.
struct Lista{
    int valor;
    
    struct Lista * proximo;
};

// função insere_iniciio().
struct Lista* insere_inicio(struct Lista* n, int valor){
    // declaração de variáveis.
    struct Lista* novo;
    
    if (n == NULL) {        // se a lista estiver vazia.
        n = (struct Lista*)malloc(sizeof(struct Lista));
        
        n->valor = valor;
        
        n->proximo = NULL;  // por ser o primeiro nó não deve apontar.
        
        return n;
        
    }else{                  // se a lista não estiver vazia.
        novo = (struct Lista*)malloc(sizeof(struct Lista));
        
        novo->valor = valor;
        
        novo->proximo = n;
        
        return novo;
    }
}

int main(){
    // declaração de variáveis.
    int valor;
    struct Lista* inicio;
    struct Lista* novo;
    struct Lista* temp;
    
    // aloca memória para a lista.
    inicio = (struct Lista*)malloc(sizeof(struct Lista));
    
    // inicializa a estrutura.
    inicio->valor = 20;
    inicio->proximo = NULL;
    
    // limpa o console.
    system("clear");
    
    printf("Informe o valor para armazenar na lista: ");
    
    scanf("%d", &valor);
    
    // chamada para a função insere_inicio().
    novo = insere_inicio(inicio, valor);
    
    temp = novo;
    
    while (temp->proximo != NULL) {
        printf("Valor armazenado: %d\n", temp->valor);
        
        temp = temp->proximo;
    }
    
    return 0;
}

 

Edited by asantos38
acrescentar texto
Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148691
    • Total Posts
      644530
×
×
  • Create New...