Я новичок в C. Мне нужно создать связанный список в c с помощью malloc, я должен создать свое решение в struct list * solution ().Учитывая список чисел, мне нужно, чтобы они отображались, пока не будет задано значение int -1.После создания связанного списка верните указатель на корневой узел связанного списка. До сих пор я могу получить только одно число, которое появится после выполнения программы.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct list{
int value;
struct list *next;
} List ;
struct list* solution()
{
int n = 0, a;
List *listpointer;
List *listpointer2;
listpointer = ( List* ) malloc( 200 * sizeof(List*));
listpointer2 = ( List* ) malloc( 200 * sizeof(List*));
//for(n = 0; n < 7; n++)
do
{
scanf("%d", &a);
if(a < 0)
{
listpointer[n].next = NULL;
break;
}
listpointer[n].value = a;
listpointer[n].next = listpointer2[n].next;
n++;
//scanf("%d", &a);
//listpointer2[n].value = a;
//listpointer2[n].next = listpointer2[n].value;
}while( a > 0);
return listpointer;
}
int main()
{
struct list *l=NULL,*temp;
l = solution();
if(l==NULL)
printf("list is empty");
else
{
do{
printf("%d ",l->value);
temp = l;
l = l->next;
}while(temp->next!=NULL);
}
}
Я ожидаю, что выходной сигнал будет 2 6 4 7 8 2 9, но пока Am способен производить выходной сигнал только в 2 или 9 раз.