|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我是完全照书上打的,编译没问题,运行就出错,不懂哪出了问题,求帮忙~~
#include <stdio.h>
#include <stdlib.h>
#define Max 10
struct list
{
int Number;
int Total;
struct list *next;
};
typedef struct list node;
typedef node *link;
int Data[2][Max]={1,3,5,7,2,4,6,8,9,0,15,35,10,67,25,65,38,70,30,20};
link insert_list(link head,link New,int key)
{
link pointer;
pointer = head;
while(1)
{
if(pointer == NULL)
{
New->next =head;
head = New;
break;
}
if(pointer->Number == key)
{
New->next = pointer->next;
pointer->next = New;
break;
}
pointer = pointer->next;
}
return head;
}
void print_list(link head)
{
link pointer;
pointer = head;
while(pointer != NULL)
{
printf("[%d,%d,]",pointer->Number,pointer->Total);
pointer = pointer->next;
}
printf("\n");
}
void free_list(link head)
{
link pointer;
while(head != NULL)
{
pointer = head;
head = head->next;
free(pointer);
}
}
link create_list(link head)
{
link New;
link pointer;
int i;
head = (link)malloc(sizeof(node));
if(head = NULL)
printf("failure");
else
{
head->Number = Data[0][0];
head->Total = Data[1][0];
head->next = NULL;
pointer = head;
}
for(i=1;i<=Max;i++)
{
New = (link)malloc(sizeof(node));
New->Number = Data[0][i];
New->Total = Data[1][i];
New->next = NULL;
pointer->next = New;
pointer = New;
}
return head;
}
int main()
{
link head;
link New;
int key;
head = create_list(head);
if(head!=NULL)
{
print_list(head);
while(1)
{
printf("Input 0 to EXIT\n");
New = (link)malloc(sizeof(node));
printf("Input the data number:");
scanf("%d",&New->Number);
if(New->Number == 0)
break;
printf("input the data number for insert:");
scanf("%d",&key);
head = insert_list(head,New,key);
print_list(head);
}
free_list(head);
}
return 0;
}
|
|