| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 951 人关注过本帖
标题:为什么编译不通过??
只看楼主 加入收藏
r251314w
Rank: 1
来 自:广东省韶钢
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-3-22
收藏
 问题点数:0 回复次数:7 
为什么编译不通过??
我快想到暴胎了~~~

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student
{
       int num,p_num;
       char *name;
       struct student *next;
};
typedef struct student s_data;
s_data *top=NULL;
void chunru(int,char *,int);
void chaxun(char *);
void print_s(s_data *);
void print_student();
void freeme();

      
int main()
{
    int select,num,p_num;
    char name[10];
    do
    {
         printf("(1)存入 (2)查询 (3)遍历 (4)离开");
         scanf("%d",&select);
         switch (select)
         {
                case 1:
                     printf("学号 姓名 电话号码:");
                     scanf("%d %s %11d",&num,name,&p_num);
                     chunru(num,name,p_num);
                     break;
                case 2:
                     printf("请输入要查询的姓名:");
                     scanf("%s",name);
                     chaxun(name);
                     break;
                case 3:
                     printf_student();
                     break;
         }
    }while (select != 4);
    freeme();
        
    system("pause");
    return 0;
}

void chunru(int num,char* name,int p_num)
{
     s_data *new_data;
     
     new_data=(s_data *)malloc(sizeof(s_data));
     strcpy(new_data->name,name);
     new_data->num=num;
     new_data->p_num=p_num;
     new_data->next=top;
     top=new_data;
}

void chaxun(char *name)
{
     int same=0;
     if (top=NULL)
       printf("无此数据!\n");
     else
     {
       s_data *ptr=top;
       do
       {
         if ((strcmp(name,ptr->name)==0)
         {
           print_s(ptr);
           puts("----------------------------------------");
           same=1;
         }
         else
           ptr=ptr->next;
       }while ((ptr==NULL)||(same=1));
      }
      if(same==0)
        printf("无此数据!\n");
}
         
void print_s(s_data *pptr)
{
     puts("----------------------------------------");
     printf("学号\t姓名\t电话号码\n");
     printf("%d\t%s\t%d\n",pptr->num,pptr->name,pptr->p_num);
     
}

void print_student()
{
     if (top == NULL)
       printf("无数据\n");
     else
     {
         s_data *ptr;
         
         ptr=top;
         while (ptr != NULL)
         {
               print_s(&ptr);
               ptr=ptr->next;
         }
          puts("----------------------------------------");
     }
}

void freeme()
{
     do
     {
             s_data *ptr;
             ptr=top;
             top=top->next;
             free(ptr);
     }while (top != NULL);
}
         
         
为什么编译时会出错?

用的是Dev-C++4.9.9.2
图片附件: 游客没有浏览图片的权限,请 登录注册


[[it] 本帖最后由 r251314w 于 2008-4-6 17:37 编辑 [/it]]
搜索更多相关主题的帖子: void int num student char 
2008-04-06 16:01
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
int main()
{..
do
{...
printf_student();//print_student;
...
}
}
void chaxun(char *name)
{...
if ((strcmp(name,ptr->name)==0)   //if ((strcmp(name,ptr->name)==0));
...
}
编译可通过,但运行有错误,自已再分析下。

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-04-06 16:27
r251314w
Rank: 1
来 自:广东省韶钢
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-3-22
收藏
得分:0 
不行啊编译没通过,不信你看图,还有我只学到了文件入门那里strcmp()函数还没学到了,strcmp()函数我是看着书照搬过来的
strcmp()的错误不懂,请指教
printf_student()的参数传递是不是那多写了取址运算符& ?如果是那可能是修改时忘记删了..

[[it] 本帖最后由 r251314w 于 2008-4-6 17:43 编辑 [/it]]
2008-04-06 17:36
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student
{
       int num,p_num;
       char *name;
       struct student *next;
};
typedef struct student s_data;
s_data *top=NULL;
void chunru(int,char *,int);
void chaxun(char *);
void print_s(s_data *);
void printf_student();
void freeme();

      
int main()
{
    int select,num,p_num;
    char name[10];
    do
    {
         printf("(1)存入 (2)查询 (3)遍历 (4)离开");
         scanf("%d",&select);
         switch (select)
         {
                case 1:
                     printf("学号 姓名 电话号码:");
                     scanf("%d %s %11d",&num,name,&p_num);
                     chunru(num,name,p_num);
                     break;
                case 2:
                     printf("请输入要查询的姓名:");
                     scanf("%s",name);
                     chaxun(name);
                     break;
                case 3:
                     printf_student();
                     break;
         }
    }while (select != 4);
    freeme();
        
    system("pause");
    return 0;
}

void chunru(int num,char* name,int p_num)
{
     s_data *new_data;
     
     new_data=(s_data *)malloc(sizeof(s_data));
     strcpy(new_data->name,name);
     new_data->num=num;
     new_data->p_num=p_num;
     new_data->next=top;
     top=new_data;
}

void chaxun(char *name)
{
     int same=0;
     if (top=NULL)
       printf("无此数据!\n");
     else
     {
       s_data *ptr=top;
       do
       {
         if ((strcmp(name,ptr->name))==0)
         {
           print_s(ptr);
           puts("----------------------------------------");
           same=1;
         }
         else
           ptr=ptr->next;
       }while ((ptr==NULL)||(same=1));
      }
      if(same==0)
        printf("无此数据!\n");
}
         
void print_s(s_data *pptr)
{
     puts("----------------------------------------");
     printf("学号\t姓名\t电话号码\n");
     printf("%d\t%s\t%d\n",pptr->num,pptr->name,pptr->p_num);
     
}

void printf_student()
{
     if (top == NULL)
       printf("无数据\n");
     else
     {
         s_data *ptr;
         
         ptr=top;
         while (ptr != NULL)
         {
               print_s(ptr);
               ptr=ptr->next;
         }
          puts("----------------------------------------");
     }
}

void freeme()
{
     do
     {
             s_data *ptr;
             ptr=top;
             top=top->next;
             free(ptr);
     }while (top != NULL);
}
   可以运行了。。可能还有错。。你自己改改

学习需要安静。。海盗要重新来过。。
2008-04-06 18:16
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
收藏
得分:0 
错误的那行左括号和右括号数字不匹配啊
2008-04-06 18:47
yunsuoyan
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-10-16
收藏
得分:0 
写的太乱了
2008-04-06 21:42
r251314w
Rank: 1
来 自:广东省韶钢
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-3-22
收藏
得分:0 
啊谢谢,我还是新手,,刚开始写的,我拿回去慢慢研究
还有请问自学的话学完入门的书了还要学什么,请高手指点,谢谢!!~!~!~!@

[[it] 本帖最后由 r251314w 于 2008-4-7 18:04 编辑 [/it]]
2008-04-07 17:53
r251314w
Rank: 1
来 自:广东省韶钢
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-3-22
收藏
得分:0 
想不明白运行会出错
2008-04-07 18:12
快速回复:为什么编译不通过??
数据加载中...
 
   



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

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