初学链表,有关单链表的程序有几处错,求高手们改错或完善
											建立一个结构体可存储7个人数据(姓名,电话),然后用链表编写,使用户可以从第一个位置添加及删除,从最后一个位置添加及删除,也可以删除任意制定位置的信息,并且显示出来 程序代码:
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Contact
{
struct Contact* next;
char name[7];
char tel;
}Contact;
Contact*start=NULL;
void printList(Contact*a)
{
    if(a==NULL){
printf("no contact given");
}
else{
    printf("\nName:%s \nTel:%f", a->name,a->tel);
}
}
void addFirst(Contact*a){
struct Contact*newA;
newA=malloc(sizeof(Contact));
printf("Name:");
scanf("%6s",&(newA->name));
printf("Tel:");
scanf("%f",&(newA->tel));
return newA;
void push(Contact*newA){
if(start==NULL){
    start=newA;
    start->next=NULL;
    }else{
    newA->next=start;
    start=newA;
    }
    }
}
void addLast(Contact*a){
struct Contact*newA;
newA=malloc(sizeof(Contact));
printf("Name:");
scanf("%6s",&(newA->name));
printf("Tel:");
scanf("%s",&(newA->tel));
return newA;
}
void removeByName(char*removeByName){
    printf("0");
    Contact*ptr=start;
    Contact*last_ptr=start;
    if(start==NULL) return;
    if(strcmp(start->name,removeByName)==0){
        ptr=start;
        start=start->next;
        }
        else
        {
            while(ptr!=NULL){
                if(strcmp(ptr->name,removeByName)==0){
                    break;
                }
                last_ptr=ptr;
                ptr=ptr->next;
            }
       last_ptr->next=ptr->next;
        }
free(ptr);
}
void removeFirst()
{
Contact*pop(){
   if(start==NULL) treurn NULL;
   Contact*help=start;
   start=start->next;
   return help;
   }
}
void removeLast()
{
    void push(Contact*newA){
   if(start==NULL){
    start=newA;
    start->next=NULL;
   } else{
    newA->next=start;
    start=newA;
   }
   }
   Contact*pop(){
   if(start==NULL) treurn NULL;
   Contact*help=start;
   start=start->next;
   return help;
   }
   }
void builtList(Contact contacts[])
{
    Contact *ptr=NULL;
    int i;
    for(i=0; i<=6; i++)
    {
        ptr=&contacts[i];
        addLast(ptr);
    }
}
int main()
{Contact*a;
printStack();
    Contact contacts[7]=
    {
        {NULL,"Dennis","0203/123456"},
        {NULL,"Chantal","0177/3123345"},
        {NULL,"Robert","0163/9295986"},
        {NULL,"Bjoern","040 - 123232345"},
        {NULL,"Andreas","+49 178 11903123"},
        {NULL,"Jenny","+41 119 34544345"},
        {NULL,"Zeuss","0162-123-4531698"},
    };
    int choose;
    do{
    printf("1.Removing name Andreas\n");
    printf("2.Removing first\n");
    printf("3.Removing last\n");
    printf("4.Exit\n");
    printf("Input:");
        scanf("%i",&choose);
        printf("\n");
switch(choose)
{
    case 1: removeByName(char*removeByName);  //此处程序报错,不知道怎么改//
            printList(Contact*a);
            break;
    case 2: removeFirst();
            printList(Contact*a);
            break;
    case 3:removeLast();
           printList(Contact*a);
            break;
    }while(choose!=4);
    return 0;
}
										
					
	


 
											





 
	    

 
	
 
											




