Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera beleza? Estou com um problema para conseguir copiar uma lista (que o usuário insere os dados) para uma outra lista.
aqui esta o que eu ja fiz.
#include <stdio.h>
#include <stdlib.h>
struct lista {
int info;
struct lista *prox;
};
struct lista addItem (struct lista *cabeca){
struct lista *atual,*novo;
atual = cabeca;
system("cls");
printf("Digite a informacao\n");atual= atual->prox;
}
novo = (lista*) malloc (sizeof (lista));
scanf("%d",&atual->info);
novo->prox = NULL;
atual->prox= novo;
}
void imprime(struct lista *cabeca) {
system("cls");
struct lista *p;
printf("Elementos: \n");
for (p = cabeca; p->prox != NULL; p = p->prox) {
printf( " * %d\n",p->info);
}
}
struct lista *inicializa(){
return NULL;
}
struct lista copiar (struct lista lista1,struct lista lista2) {
system("cls");
struct lista *p,*q,*aux;
q = lista2;
for (p=lista1; p->prox != NULL; p=p->prox) {
q->info=p->info;
q=q->prox;
}
printf("Copia completa\n");
}
int main () {
int j;
struct lista *lista1;
lista1 = (lista*) malloc (sizeof (lista));
lista1->prox = inicializa();
struct lista *lista2;
lista2 = (lista*) malloc (sizeof (lista));
lista2->prox= inicializa();printf("Escolha uma das funcoes\n");
printf("Digite [1] para Inserir items\nDigite [2] para imprimir a lista\nDigite [3] para copiar a lista\nDigite [0] para encerrar o programa\n");
scanf("%d",&j);
if (j==1){
printf("Escolha se voce quer inserir na lista 1 ou na lista 2\n");
scanf("%d",&j);
if (j==1){
addItem(lista1);
}
else if (j==2){
addItem(lista2);
}
} else if (j==2) {
printf("Escolha se voce quer imprimir a lista 1 ou a lista 2\n");
scanf("%d",&j);
if (j==1){
imprime(lista1);
}
else if (j==2){
imprime(lista2);
}
} else if (j==3){
copiar(lista1,lista2);
}
} while (j!=0);
}
O meu objetivo é transferir os elementos da lista 1 para a lista 2 e assim ter duas listas idênticas na impressão.
Pode-se ver que a função copiar não esta funcionando ( o programa trava). Obrigado pela ajuda desde já =D
Carregando comentários...