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

#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
biedyzjm
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 2楼 shafeilong
你好,请你具体解释下人机交互式那个方法!这个我实在搞不出来……谢谢!
2010-10-25 20:44
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
biedyzjm
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 8楼 m21wo
额!!!点错了就回了……
2010-10-26 12:23
biedyzjm
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 8楼 m21wo
    你好,昨天你教我那个我已经弄出来了,按照你所写的那样!!
    现在我又有两个问题,要接着在刚刚的程序后面接着做两个操作。一开始不是输入了五个同学的信息并且输出了嘛,现在要接着删除第二个同学的信息,并输出结果,完了以后再在第四个学生前面输入一个学生的信息。

    删除的操作我写出来如此:
    status ListDelete_sq(sqlist &L, int k, Elemtype &e)
{   

    if((k<1)||(k>L.length))   
        return ERROR;
    p=&(L.elem[k-1]);
    e=*p;
    q=L.elem+L.length-1;
    for(++p;p<=q;++p)
        *(p-1) = *p;
    --L.length;
    return OK;
}
但是删除的主程序我就不知道怎么写出来了。插入第四个同学的信息情况也一样:
status ListInsert_sq(sqList &L,int m, Elemtype e);
{   
    if(m<1||m>L.length=1)    return ERROR;
    if(L.length>=L.listsize)
    {
        newbase=(Elemtype *)realloc(L.elem,(L.listsize+Listcrement)*sizeof(Elemtype));
        if(!newbase)    exit(OVERFLOW);
        L.elem=newbase;
        L.listsize+=Listcrement;
    }
    q=&(L.elem[m-1]);
    for(p=&(L.elem[L.length-1]);p>=q;--p)
        *(p+1)=*p;
    *q=e
        ++L.length;
    return OK;
}

算法弄出来后面接着的主程序也不会写,好痛苦。它提示的那些错误都不知道怎么解决,你能教教我吗?谢谢了!
2010-10-26 13:14
快速回复:小弟执行过程中总是出现这两个不能解决的问题,求讲解!
数据加载中...
 
   



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

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