ช่วยดูโค้ให้หน่อยครับแก้ไม่ตก ต้องการหาผลบวกถึงจำนวนที่ 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;
}
Link list data algolithm
ใน 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;
}