| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 369 人关注过本帖
标题:帮下忙!~~
只看楼主 加入收藏
r251314w
Rank: 1
来 自:广东省韶钢
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-3-22
收藏
 问题点数:0 回复次数:2 
帮下忙!~~
为什么返回结构指针会有错??
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student
{
       int num,p_num;
       char name[10];
       struct student *next;
};
typedef struct student s_data;
s_data *top=NULL;
int chunru(int num,char *name,int p_num)
{
     s_data *new_data;
   
     
     new_data=(s_data *)malloc(sizeof(s_data));
     if(new_data==NULL)
       return 0;
     else
     {
       strcpy(new_data->name,name);
       new_data->num=num;
       new_data->p_num=p_num;
       new_data->next=top;
       top=new_data;
       return 1;
     }
     
}
s_data* chaxun(char *name)
{
     s_data *pitop=top;
     do
     {
       if((strcmp(name,pitop->name)==0)
         return pitop;
       else
         pitop=pitop->next;
     }while(pitop!=NULL);
     return NULL;
}
         
void show()
{
    s_data *pitop=top;
    while (pitop != NULL)
    {
      puts("----------------------------------------");
      printf("学号\t姓名\t电话号码\n");
      printf("%d\t%s\t%d\n",pitop->num,pitop->name,pitop->p_num);
      pitop=pitop->next;
    }
    puts("----------------------------------------");
}   


      
int main()
{
    int select,s_num,s_p_num;
    char s_name[10],c_name[10];
    s_data *ptr;
    do
    {
         printf("(1)存入 (2)查询 (3)遍历 (4)离开");
         scanf("%d",&select);
         switch (select)
         {
                case 1:
                     printf("请输入学生的学号 姓名 电话号码: ");
                     scanf("%d%s%d",&s_num,s_name,&s_p_num);
                     if(!(chunru(s_num,s_name,s_p_num)))
                       printf("存入失败!\n");
                     break;
                case 2:
                     if (top=NULL)
                       printf("无数据!\n");
                     else
                     {
                     printf("请输入要查询的姓名:");
                     scanf("%s",c_name);
                     ptr=chaxun(c_name);
                     if(ptr==NULL)
                        printf("无此数据!\n");
                     else
                       printf("%d\t%s\t%d\n",ptr->num,ptr->name,ptr->p_num);
                     break;
                case 3:
                     if (top=NULL)
                       printf("无数据!\n");
                     else
                       show();  
                     break;
         }
    }while (select != 4);
    if (top=NULL)
    {
      while(top!=NULL)
      {
        s_data *pitop=top;
        free(pitop);
        top=top->next;
      }
    }
        
   
    return 0;
}


图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include return 
2008-04-09 18:24
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
if (top=NULL)//  汗!!!!!!竟然好几处;

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-04-09 19:00
r251314w
Rank: 1
来 自:广东省韶钢
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-3-22
收藏
得分:0 
噢打的时候少打了个=

[[it] 本帖最后由 r251314w 于 2008-4-11 17:56 编辑 [/it]]
2008-04-10 17:57
快速回复:帮下忙!~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013149 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved