回 帖 发 新 帖 刷新版面

主题:c程序问题

利用c程序实现链表的操作——城市问题


#include"stdio.h"


typedef struct Node
 {int x,y;
  char Name[8];
  struct Node *next;
 }Node,*LinkList;



void CreateFromTail(LinkList L)
{Node *s,*r;
 r=L;
 int flag=1,a,b;
 char d[8],c;
 while(flag)
 {c=getchar();
  if(c!='$')
  {gets(d);
   scanf("%d,%d",&a,&b);
      s=(Node *)malloc(sizeof(Node));
      s->Name=d;
      s->x=a;
      s->y=b;
      r->next=s;
      r=s;
  }
  else
  {flag=0;
      r->next=NULL;
  }
 }
}



Node *Locate(LinkList L,Name key)
{gets(key);
 Node *p;
 p=L->next;
 while(p!=NULL)
  if(p->Name!=key)
   p=p->next;
  else break;
 return p;
}


main()
{LinkList *L;
 L=(LinkList)malloc(sizeof(Node));
 L->next=NULL;
 CreateFromTial(L);
 Loate(L,key);
 printf("%d,%d",p->x,p->y);
}
每次编译到 int flage=1,a,b; 时就开始出现错误
请帮我改改
谢谢

回复列表 (共1个回复)

沙发

//改好了,你看看吧!注意字符串的操作啊!

#include <stdio.h>
#include <string.h>
#include <malloc.h>

typedef struct Node
{
    int x,y;
    char Name[8];
    struct Node *next;
}Node,*LinkList;



void CreateFromTail(LinkList &L)
{
    Node *s,*r;
    r=L;
    int flag=1,a,b;
    char d[8],c;
    printf("继续吗?退出请按'#' :");
    scanf("%c",&c);
    while(true)
    {
       if(c!='#')
       {
           printf("输入城市的名字: ");
           scanf("%s",d);
           printf("输入x和y: ");
           scanf("%d,%d",&a,&b);
           s=(Node *)malloc(sizeof(Node));
           strcpy(s->Name,d);  //字符串的赋值操作
           s->x=a;
           s->y=b;
           r->next=s;
           r=s;
           printf("继续吗?退出请按'#' :");
           getchar();
           scanf("%c",&c);
       }
       else
       {
          r->next=NULL;
          break;
       }
    }
}



Node *Locate(LinkList L,char *key)
{
    Node *p;
    p=L->next;
    while(p!=NULL)
       if(strcmp(p->Name,key)!=0)
            p=p->next;
       else 
          break;
   return p;
}


void main()
{
    LinkList L;
    L=(LinkList)malloc(sizeof(Node));
    L->next=NULL;
    CreateFromTail(L);
    char key[8];
    Node *p;
    printf("请输入查找的城市: ");
    scanf("%s",key);
    p=Locate(L,key);
    printf("%d,%d\n",p->x,p->y);
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册