您如何在链接列表中插入数字数组?

问题描述 投票:-1回答:1

我有一个任务,要使一个程序得到14分,然后将其放入双链表,以便我可以对数据进行排序,但是我注意到您不能在链表中插入数字数组,本身

int scores[15]

进入链接列表。

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
#include<windows.h>
#include<conio.h>

struct mhs{

    char name[30];
    int scores[15];
    int finalScore;

    struct mhs *next, *prev;

};

void data(struct mhs **head, struct mhs **node, struct mhs **tail){

    char nama[30];
    int scores[15];
    int finalScore;
    int i, sum = 0;

    system("cls");
    printf("Name: ");
    scanf("[^\n]", name);
    fflush(stdin);
    for(i = 0; i < 14 ; i++){
        printf("Score %d: ", i+1);
        scanf("%d", &scores[i]);
    }
    for(i = 13; i > 3; i--){
        sum = sum + scores[i];
    }
    printf("Final Score: %d\n", sum / 10);
    system("pause");
    (*node) = (struct mhs*) malloc(sizeof(struct mhs));
    strcpy((*node)->nama, nama);
    (*node)->scores= scores;                      //here's where I insert the scores
    (*node)->finalScore= finalScore;

    if(*head == NULL){
        *head = *node;
        *tail = *node;
    } else {
        (*tail)->next = *node;
        (*node)->prev = *tail;
        *tail = *node;
    }

}

void data是int main()中的函数,这就是结构使用指针的原因。谁能告诉我如何在链接列表中添加数字数组?

c linked-list doubly-linked-list
1个回答
0
投票
            tldr;
            Did you said to insert each array of elements in to a single node of linked list.
            Then you need to assign base address of array to the node of the linked list to create linked list with each node containing array elements.

            It would be like -
        node 1 - array1 elements like [1,2,3,4]
        node 2 - array2 elements like [6,4,2,4]
        ...

            If you just want to convert linked list by using array elements. Then just iterate over it.
            Like

for(int i = 0;i<array_size;i++)
p->next = a[i];
p->next = NULL
© www.soinside.com 2019 - 2024. All rights reserved.