| 
 | 
 
 
发表于 2014-4-24 20:53:30
|
显示全部楼层
 
 
 
发代码旁边有数字的原因是我用了 [ code]这个东西[ /code] 自己去掉空格。 
 
我知道你的意思了。我也对C和C++也只能算是入门,刚开始可能是误解你的代码的意思。 
一下是我改好的,已加新的备注。调试成功。你再看看吧- #include<stdio.h>
 
 - #include<stdlib.h>
 
 - #define op 90
 
 - struct Node                             //这里不需要typedef。 看的懂英文可以参考下这个帖子http://stackoverflow.com/questions/18806392/typedef-struct-declarations,看不懂谷歌翻一下
 
 - {
 
 -         int number;
 
 -         char name[op];
 
 -         int age;
 
 -         struct Node* next;
 
 - };
 
 - typedef Node* linklist;
 
 - int main()
 
 - {
 
 -         int i,w;
 
 -         char q;
 
 -         linklist l,p,s,find;
 
 -         l=(linklist)malloc(sizeof(Node));
 
 -         s=(linklist)malloc(sizeof(Node));
 
 -         find=(linklist)malloc(sizeof(Node));
 
 -         l->next=NULL;
 
 -         do                                                  //这里开始是程序的主页面,设置了循环条件,用户选择退出才能离开程序
 
 -         {
 
 -         printf("请输入选择的操作类型:\n1、存入信息\n2、查找信息\n3、退出\n");
 
 -         q=getchar();
 
 -         switch(q)                                            //用户选择操作类型
 
 -           {
 
 -             case '1':
 
 -                   printf("请分别输入学号、名字、年龄并用逗号隔开\n");
 
 -                   p=(linklist)malloc(sizeof(Node));
 
 -                   scanf("%d,%s,%d",&p->number,p->name,&p->age); //语法问题, &int变量
 
 -                   p->next=l->next;
 
 -                   l->next=p;
 
 -                   printf("按下1显示所有信息记录,否则返回\n");
 
 -                   scanf("%d",&i);
 
 -                   if(i==1)
 
 -                   {
 
 -                         s=l->next;
 
 -                         while(i==1&&!(s->next==NULL))
 
 -                         {
 
 -                                 printf("学号:%d,名字:%s,年龄:%d\n",s->number,s->name,s->age);
 
 -                                 s=s->next; //估计是粗心。我猜应该是这样
 
 -                         }
 
 -                         printf("学号:%d,名字:%s,年龄:%d\n",s->number,s->name,s->age);
 
  
-                   }  //if
 
 -                   i=0;
 
 -                   break;
 
 -             case '2':
 
 -                   find=l;
 
 -                   printf("请输入学号\n");
 
 -                   scanf("%d",&s->number);   // 语法问题,看上面
 
 -                   while(s->number!=find->number)
 
 -                   {
 
 -                         find=find->next;
 
 -                   }
 
 -                   if(s->number!=find->number) return -1;
 
 -                   else
 
 -                    printf("学号:%d,名字:%s,年龄:%d\n",find->number,find->name,find->age);
 
 -                   break;
 
 -             default:break;
 
 -           }         //switch
 
 -         printf("继续操作请按下1\n否则退出程序\n");
 
 -         scanf("%d",&w);
 
 -         }while(w==1);
 
 -         return 0;
 
 - }
 
 
  复制代码 |   
 
 
 
 |