| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 838 人关注过本帖
标题:有关顺序表的问题
只看楼主 加入收藏
syuanq
Rank: 2
等 级:新手上路
威 望:3
帖 子:297
专家分:0
注 册:2006-12-11
结帖率:0
收藏
 问题点数:0 回复次数:1 
有关顺序表的问题
#include <stdio.h>
#include <stdlib.h>
#define LISTSIZE 50
typedef char DateType;
typedef struct
{
    DateType* elem;
    int length;
    int listsize;
}SeqList;
void InitList(SeqList* L)
{
    L->elem=(DateType *)malloc((LISTSIZE)*sizeof(DateType));
    L->length=0;
    L->listsize=LISTSIZE;
    printf("\n\t\t\t线性表初始化成功");
}
void InsertList(SeqList* L,int i,DateType x)
{
    int j;
    if(i<1||i>L->length+1)
    {
        printf("\n\t\t\t插入位置不合法");
    }
    else
    {
        for(j=L->length;j>=i;j--)
        {
            L->elem[j+1]=L->elem[j];
        }
        L->elem[i]=x;
        L->length++;
        printf("\n\t\t\t插入成功!");
    }
}
void showList(SeqList* L)
{
    int i;
    if(L->length==0)
    {
        printf("\n\t\t\t顺序表为空!");
    }
    else
    {
        printf("\n\t\t\t");
        for(i=0;i<L->length;i++)
        {
            printf("%c",L->elem[i]);
        }
    }
}
void main()
{
    int k,i,j=1;
    DateType x;
    SeqList L;
    while(j)
    {
        printf("\n");
        printf("\n");
        printf("\n");
        printf("\n");
        printf("\n\t\t\t********************************");
        printf("\n\t\t\t***     1---初始化顺序表     ***");
        printf("\n\t\t\t***     2---插入元素         ***");
        printf("\n\t\t\t***     3---显示顺序表       ***");
        printf("\n\t\t\t***     0---退出             ***");
        printf("\n\t\t\t********************************\n");
        printf("\n\t\t\t请选择菜单序号:");
        scanf("%d",&k);getchar();
        if(k==1)
        {
            InitList(&L);
        }
        else if(k==2)
        {
            printf("\n\t\t\t请输入元素位置与值,格式如(i,x)");
            scanf("%d,%c",&i,&x);
            InsertList(&L,i,x);
        }
        else if(k==3)
        {
            showList(&L);
        }
        else if(k==0)
        {
            j=0;
            printf("\t\t\t程序结束!\n");
        }
    }
}
请问这个代码错在哪里呢?为什么我插入数据时显示不出来呢?谢谢指点
搜索更多相关主题的帖子: 顺序 DateType int length LISTSIZE 
2007-12-28 01:07
syuanq
Rank: 2
等 级:新手上路
威 望:3
帖 子:297
专家分:0
注 册:2006-12-11
收藏
得分:0 
if(i<1||i>L->length+1)
没注意到数组是从0开始的,原来错在这里了,呵呵

[url]www.[/url]欢迎大家的光临,一起交流学习
2007-12-28 01:17
快速回复:有关顺序表的问题
数据加载中...
 
   



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

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