33,027
社区成员




#include <stdio.h>
#include <malloc.h>
# define LEN sizeof(struct number)
struct number
{
long num;
struct number *next;
};
int n,j;
struct number *creat(void)
{
struct number *head;
struct number *p1,*p2;
n=0;
p1=p2=(struct number*)malloc(LEN);
printf("Please input positive numbers\n");
scanf("%ld",&p1->num);
head=NULL;
while(p1->num!=0)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct number*)malloc(LEN);
scanf("%ld",&p1->num);
}
p2->next=NULL;
j=n;
return(head);
}
void print(struct number *head)
{
struct number *p;
printf("\nNow ,there are %d numbers\n ", n);
p=head;
if(head!=NULL)
do {
printf("%ld\t",p->num);
p=p->next;
}
while(p!=NULL);
}
struct number *del(struct number *head,long min)
{
struct number *p1,*p2;
struct number *minP,*beforeMinp;
if(head==NULL)
printf("\nNo number\n");
p1=head;
minP=head;
min=p1->num;
while(p1->next!=NULL)
{
p2=p1;
p1=p2->next;
if(min>=p1->num)
{
min=p1->num;
beforeMinp=p2;
minP=p1;
}
}
if(minP==head)
head=minP->next;
else beforeMinp->next=minP->next;
printf("delete:%ld\n",min);
n=n-1;
return(head);
}
main()
{
struct number *head;
int i;
long min;
head=creat();
print(head);
for(i=1;i <=j;i++)
{
head = del(head,min);
print(head);
}
}