Mateus Santiago 333 Postado Novembro 27, 2014 Denunciar Share Postado Novembro 27, 2014 Neste código aparece um número a frente dos que foram digitados, alguém sabe como corrigir? #include<stdio.h> #include<string.h> #include<stdlib.h> struct Lista{ int num; struct Lista *proximo; }; struct Lista * cria(void) { return NULL; } struct Lista * add(struct Lista *l, int num) { struct Lista *novo = (struct Lista*)malloc(sizeof(struct Lista)); novo->num = num; if(l == NULL) { novo->proximo = NULL; return novo; } else { struct Lista *temp = l; while(temp->proximo != NULL) { temp = temp->proximo; } novo->proximo = NULL; temp->proximo = novo; return l; } } void list(struct Lista *l) { struct Lista *p; for(p=l;p!=NULL;p=p->proximo) { printf("%d ", p->num); } } main() { int num; char *cmd; char string_enter[50]; struct Lista *l; l = cria(); l = add(l,num); do { gets(string_enter); cmd = strtok(string_enter," "); num = atoi((char *)strtok(NULL," ")); if(strcmp(cmd,"add")== 0){ add(l,num); continue; } else if(strcmp(cmd,"list")== 0){ list(l); continue; } }while(strcmp(cmd,"end")!= 0); system("pause"); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ScreenBlack Postado Novembro 28, 2014 Denunciar Share Postado Novembro 28, 2014 (editado) Por causa da chamada "add(l, num);" depois de "cria();": l = cria(); l = add(l,num); Apenas a remova.Além disso, é aconselhado sempre iniciar as variáveis recém declaradas: int num = 0; char *cmd = NULL; char string_enter[50] = {'\0'}; struct Lista *l = NULL; Editado Novembro 28, 2014 por ScreenBlack Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Mateus Santiago 333
Neste código aparece um número a frente dos que foram digitados, alguém sabe como corrigir?
Link para o comentário
Compartilhar em outros sites
1 resposta 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.