Link list data algolithm

ช่วยดูโค้ให้หน่อยครับแก้ไม่ตก ต้องการหาผลบวกถึงจำนวนที่ n โดยใช้โครงสร้าง linked list
ใน loop while ต้องทำอย่างไรครับ หรือต้องแก้ที่จุดไหน
input : 5
output :
i=1 , result=1
i=2 , result=3
i=3 , result=6
i=4 , result=10
i=5 , result=15

#include <stdio.h>
#include<stdlib.h>
struct Node
{
    int data;
    struct Node *next;
};

int main()
{
    struct Node *xnew, *xsum, *xhead;
    long sum=0, i=0;
    xnew=(Node*)malloc(sizeof(struct Node));
    scanf("%d",&xnew->data);
    
    while(i<xnew->data)
    {
        xsum=(Node*)malloc(sizeof(struct Node));
        xsum->data=0;
        
        xsum->next=NULL;

        if(xhead==NULL)
            xhead=xsum;
        
        else
        {
            struct Node *xscan;
            xscan=xhead;
            printf("i=%d ",i);
            printf("xcsan = %p\n",xscan->next);
            /*
            while(xscan->next!=NULL)
            {
                printf("xscan!!!\n");
                //xscan=xscan->next;
                //xscan->data=xscan->data+i;
                //printf("i= %ld sum = %ld\n",i, xsum->data);
            }
            xscan->next=xsum;*/
        }
        
        i++;
        
    }
    return 0;
}
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่