该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
本文件实现变量的操作,名为:bianliang.c因为英语不好只好用拼音
struct bl
{char name[16];
double x;
struct bl *next ;
}*head=NULL,*end=NULL;
add(char *name,double y)
{struct bl *new;
if(find(name)==1)
{
printf("%s :bian biang is haved!!\n",name);
return 0;
}
new=(struct bl*)(malloc(sizeof(struct bl)));
if(new!=0)
{
strcpy(new->name,name);
(new->x)=y;
if(head==NULL){end=head=new;head->next=NULL;}
else
{
end->next=new;
end=new;
new->next=NULL;}
}
else
printf("have not enemy meaony!!");
}
delete(char *name)
{
struct bl *p1,*p2;
p2=p1=head;
while(strcmp(p1->name,name)!=0&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(strcmp(p1->name,name)==0)
{
p2->next=p1->next;
free(p1);
}
else
printf("have not the bianliang !!\n");
}
setvalue(char *name,double x)
{
struct bl *p;
p=head;
while(strcmp(p->name,name)!=0&&p->next!=NULL)p=p->next;
if(strcmp(p->name,name)==0) p->x=x;
else
add(name,x);
}
double vgetvalue(char *name)
{
struct bl *p;
p=head;
while(strcmp(p->name,name)!=0&&p->next!=NULL)p=p->next;
if(strcmp(p->name,name)==0)
return(p->x);
else
{add(name ,0);
return 0;}
}
clear()
{
struct bl *p1,*p2;
p1=head;
head=NULL;
end=NULL;
while(p1!=NULL)
{
p2=p1->next;
free(p1);
p1=p2;
}
}
showall()
{
struct bl *p;
p=head;
while(p!=NULL)
{printf("%10s\t%f\n",p->name,p->x );
p=p->next;
}
return 0;
}
find(char *name)
{
struct bl *p1;
p1=head;
while(strcmp(p1->name,name)!=0&&p1->next!=NULL)
p1=p1->next;
if(strcmp(p1->name,name)==0)
return 1;
else
return 0;
}