| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 997 人关注过本帖
标题:小弟执行过程中总是出现这两个不能解决的问题,求讲解!
只看楼主 加入收藏
biedyzjm
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:11 
小弟执行过程中总是出现这两个不能解决的问题,求讲解!
我如此弄了一个程序,目的是利用顺序表输入五位同学的基本信息并输出,程序如下:

#include<stdio.h>
#include<stdlib.h>
#define OVERFLOW -2;
#define OK 1;
typedef int status;
typedef int Elemtype;
#define LIST_INIT_SIZE 1000
#define Listcrement 100
void main()
{
typedef struct{
Elemtype *elem;
int length;
int listsize;
    }sqlist;
//顺序表动态分配存储结构
status initList_sq(sqlist &L)
{
L.elem=(Elemtype *)malloc(LIST_INIT_SIZE*sizeof(Elemtype));
if(!L.elem) exit(OVERFLOW);
  L.length=0;
  L.listsize=LIST_INIT_SIZE;
  return OK;
}
//初始化线性表
struct date
{
  int year;
  int month;
  int day;
}bir[5];
//定义时间结构组
struct student
{
  long int num;
  char name[10];
  struct date birthday;
  
}stu[5];
//定义学生信息结构组

int i, j;
for(i=0;i<5;i++)
{scanf("%d,%s,%d,%d,%d",&stu[i].num,&stu[i].name,&stu[i].birthday.year,&stu[i].birthday.month,&stu[i].birthday.day);}
for(j=0;j<=i;j++)
{printf("Num:%5d Name:%5s Birthday:%5d\n",stu[j].num,stu[j].name,stu[i].birthday);}
}

但是我执行的时候总是有个错误提示一个错误
error C2601: 'initList_sq' : local function definitions are illegal
执行 cl.exe 时出错.

我不知道怎么解决,于是把
status initList_sq(sqlist &L)
{
L.elem=(Elemtype *)malloc(LIST_INIT_SIZE*sizeof(Elemtype));
if(!L.elem) exit(OVERFLOW);
  L.length=0;
  L.listsize=LIST_INIT_SIZE;
  return OK;
}
这一段删了,提示没有错误,就开始执行程序,输入以后出现如图示悲剧;
图片附件: 游客没有浏览图片的权限,请 登录注册


各位高人,如何解决这些个问题,小弟坐等!!!谢谢了!!
因为是新手,所以没分的!!
搜索更多相关主题的帖子: 讲解 
2010-10-25 18:19
shafeilong
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:236
专家分:1434
注 册:2009-3-21
收藏
得分:4 
你后面输入的4个整数被默认为字符串读进去了
可以考虑用人机交互的方法分隔整数和字符串,比如用Printf提示

最后,你的birthday输出要3个"%d"   你直接用stu[i].birthday是不对的  应该在birthday后面具体精确到年月日
2010-10-25 19:31
biedyzjm
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 2楼 shafeilong
你好,请你具体解释下人机交互式那个方法!这个我实在搞不出来……谢谢!
2010-10-25 20:44
取而代之
Rank: 2
等 级:论坛游民
帖 子:32
专家分:53
注 册:2010-7-11
收藏
得分:4 
用到顺序表了?
2010-10-25 20:47
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:4 
#include<stdio.h>
#include<stdlib.h>
#define OVERFLOW -2;
#define OK 1;
typedef int status;
typedef int Elemtype;
#define LIST_INIT_SIZE 1000
#define Listcrement 100
typedef struct{
    Elemtype *elem;
    int length;
    int listsize;
}sqlist;

//初始化线性表
struct date
{
    int year;
    int month;
    int day;
}bir[5];
//定义时间结构组
struct student
{
    long int num;
    char name[10];
    struct date birthday;

}stu[5];
//定义学生信息结构组

status initList_sq(sqlist &L)
{
    L.elem=(Elemtype *)malloc(LIST_INIT_SIZE*sizeof(Elemtype));
    if(!L.elem)
        exit(-2);
    L.length=0;
    L.listsize=LIST_INIT_SIZE;
    return OK;
}
void main()
{
    //顺序表动态分配存储结构

    int i, j;
    for(i=0;i<5;i++)
    {scanf("%d,%d,%d,%d,%s",&stu[i].num,&stu[i].birthday.year,&stu[i].birthday.month,&stu[i].birthday.day,&stu[i].name);}
    for(j=0;j<i;j++)
    {printf("Name:%s  Num:%5d  Birthday:%d%d%d\n",stu[j].name,stu[j].num,stu[j].birthday.year,stu[j].birthday.month,stu[j].birthday.day);}
}
图片附件: 游客没有浏览图片的权限,请 登录注册

按你那么写 把字符串放在中间输入的话,当输入姓名后你再输入分号它会默认为分号是name的一部分,根本起不到数据输入的作用。而后面的什么生日都赋值为0,故你可以把姓名放在最后输入就不会出现那种状况了!

或者姓名单独输入也不会出现那种状况了

[ 本帖最后由 m21wo 于 2010-10-25 20:49 编辑 ]

If You Want Something, Go Get It, Period.
2010-10-25 20:47
biedyzjm
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 3楼 biedyzjm
恩,是的!老师说一定要用顺序表,现在又布置一个用链来完成!!头大了!
2010-10-25 21:56
biedyzjm
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 4楼 取而代之
太感谢了,怎么我就没想到把name弄到最后去!!!
呵呵!!
2010-10-25 22:04
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:0 
是我说的!怎么是 4楼的啊 !

If You Want Something, Go Get It, Period.
2010-10-25 22:19
Tveiker
Rank: 2
来 自:湖南省张家界桑植
等 级:论坛游民
帖 子:17
专家分:41
注 册:2010-9-28
收藏
得分:4 
怎么插图的啊?
2010-10-26 01:14
biedyzjm
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 8楼 m21wo
额!!!点错了就回了……
2010-10-26 12:23
快速回复:小弟执行过程中总是出现这两个不能解决的问题,求讲解!
数据加载中...
 
   



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

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