我有一项任务,要制作一个获得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: %dn", 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((中的一个函数,这就是结构使用指针的原因。有人能告诉我如何将一组数字添加到链表中吗?
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