程序在打印的时候出错了
大家可以运行看看
#include "stdafx.h"
#include "stdlib.h"
struct list
{
int number;
int name[10];
struct list *next;
};
void free_list(struct list *head)
{
struct list *pointer;
pointer=new (list);
while(pointer!=NULL)
{
pointer=head;
head=head->next ;
free(pointer);
}
}
void print_list(struct list *head)
{
struct list *pointer;
pointer=head;
while(pointer=NULL);
{
printf("##input data##\n");
printf("data number:%d\n",pointer->number );
printf("data name :%s\n",pointer->name );
pointer=pointer->next ;
}
}
struct list* create_list(struct list *head)
{
int datanum;
char dataname[10];
struct list *New;
struct list *pointer;
int i;
head=new(list);
if(head==NULL)
printf("Memeory allocate Failure!!=\n");
else
{
datanum=1;
printf("please input the data name:");
scanf("%s",dataname);
head->number =datanum;
for(i=0;i<=10;i++)
head->name [i]=dataname[i];
head->next =NULL;
pointer=head;
while(1)
{
datanum++;
New=new(list);
printf("please input the data name:");
scanf("%s",dataname);
if(dataname[0]=='0')
break;
New->number=datanum;
for(i=0;i<=10;i++)
{
New->name[i]=dataname[i];
}
New->next=NULL;
pointer->next=New;
pointer=New;
}
}
return head;
}
int main(int argc, char* argv[])
{
struct list *head;
head=create_list(head);
if(head!=NULL)
{
print_list(head);
free_list(head);
}
return 0;
}
大家可以运行看看
#include "stdafx.h"
#include "stdlib.h"
struct list
{
int number;
int name[10];
struct list *next;
};
void free_list(struct list *head)
{
struct list *pointer;
pointer=new (list);
while(pointer!=NULL)
{
pointer=head;
head=head->next ;
free(pointer);
}
}
void print_list(struct list *head)
{
struct list *pointer;
pointer=head;
while(pointer=NULL);
{
printf("##input data##\n");
printf("data number:%d\n",pointer->number );
printf("data name :%s\n",pointer->name );
pointer=pointer->next ;
}
}
struct list* create_list(struct list *head)
{
int datanum;
char dataname[10];
struct list *New;
struct list *pointer;
int i;
head=new(list);
if(head==NULL)
printf("Memeory allocate Failure!!=\n");
else
{
datanum=1;
printf("please input the data name:");
scanf("%s",dataname);
head->number =datanum;
for(i=0;i<=10;i++)
head->name [i]=dataname[i];
head->next =NULL;
pointer=head;
while(1)
{
datanum++;
New=new(list);
printf("please input the data name:");
scanf("%s",dataname);
if(dataname[0]=='0')
break;
New->number=datanum;
for(i=0;i<=10;i++)
{
New->name[i]=dataname[i];
}
New->next=NULL;
pointer->next=New;
pointer=New;
}
}
return head;
}
int main(int argc, char* argv[])
{
struct list *head;
head=create_list(head);
if(head!=NULL)
{
print_list(head);
free_list(head);
}
return 0;
}
//我只帮你让程序跑起来,程序的优化你自己来完成了#include "stdio.h"
#include "stdlib.h"
struct list
{
int number;
//int name[10];
char name[10];//这里你应该用 char 型,否则打印就有第一个字母!
struct list *next;
};
void free_list(struct list *head)
{
struct list *pointer;
//不要再new了 pointer=new (list);
pointer = head;
while(pointer!=NULL)
{
pointer=head;
if ( pointer == NULL ) break;//顺着你的方式的
head=head->next ;
free(pointer);
}
}
void print_list(struct list *head)
{
struct list *pointer;
pointer=head;
//写好点! while(pointer=NULL);
while(pointer!=NULL)
{
printf("##input data##\n");
printf("data number:%d\n",pointer->number );
printf("data name :%s\n",pointer->name );
pointer=pointer->next ;
}
}
struct list* create_list(struct list *head)
{
int datanum;
char dataname[10];
struct list *New;
struct list *pointer;
int i;
head=new(list);
if(head==NULL)
printf("Memeory allocate Failure!!=\n");
else
{
datanum=1;
printf("please input the data name:");
scanf("%s",dataname);
head->number =datanum;
//越界 for(i=0;i<=10;i++)
for(i=0;i<10;i++)
head->name [i]=dataname[i];
head->next =NULL;
pointer=head;
while(1)
{
datanum++;
//搬到下面 New=new(list);
printf("please input the data name:");
scanf("%s",dataname);
if(dataname[0]=='0')
break;New=new(list);//搬到这里
New->number=datanum;
//越界 for(i=0;i<=10;i++)
for(i=0;i<10;i++)
{
New->name[i]=dataname[i];
}
New->next=NULL;
pointer->next=New;
pointer=New;
}
}
return head;
}
int main(int argc, char* argv[])
{
struct list *head;
head=create_list(head);
if(head!=NULL)
{
print_list(head);
free_list(head);
}
return 0;
}