2013-01-09 5 views
1

Я должен сделать для домашней работы 2 связанных списка, поместить целые числа, заданные от пользователя в первом, а затем поместить результат = x^3 для каждого целого числа первого ко второму списку. В следующем коде я пытаюсь напечатать то, что я положил в первом списке, читая с помощью scanf. Я еще не понял, почему я не могу напечатать таким образом. Не могли бы вы объяснить? Заранее спасибо!! Проблема заключается в том, что я печатаю только последний элемент и 0 ...: SПечать связанного списка в c

Код:

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

struct L1 
{ 
    int x; 
    struct L1 *next1; 
}; 

struct L2 
{ 
    int x,i,v; 
    struct L2 *next2; 
}; 

int main() 
{ 
    int i,N; 
    struct L1 *root1; 
    struct L2 *root2; 
    struct L1 *conductor1; 
    struct L2 *conductor2; 

    root1 = malloc(sizeof(struct L1)); 
    root2 = malloc(sizeof(struct L2)); 
    root1->next1=0; 
    conductor1 = root1; 
    printf("Dwste arithmo N"); 
    scanf("%d",&N); 
    printf("\nDwse arithmo"); 
    scanf("%d",&conductor1->x); 
    printf("%d",conductor1->x); 

    for(i=0; i<N; i++) 
    { 
     conductor1->next1 = malloc(sizeof(struct L1)); 
     printf("\nDwste arithmo"); 
     scanf("%d",&conductor1->x); 
     conductor1->next1=0; 
    } 
    conductor1 = root1; 
    while (conductor1 != NULL) 
    { 
     printf("\n%d",conductor1->x); 
     conductor1=conductor1->next1; 
    } 

    return 0; 
} 
+2

Какая проблема вы испытываете? Не будет компилировать, аварийно, сообщение об ошибке? – antlersoft

+0

да я отредактировал xD извините .. – alex777

ответ

3

В for цикле вы никогда не изменяя при этом значение conductor1. Поэтому он всегда будет указывать на головной узел, и вы всегда будете перезаписывать поля этого узла. Вам нужно добавить conductor1=conductor1->next1; после выделения нового узла для перехода к следующему узлу на каждой итерации.

+0

измените это так, как вы? conductor1 = conductor1-> next1; – alex777

+0

@ alex777: Да, после 'malloc'. – interjay

+0

Oh thx .. это было! – alex777

Смежные вопросы