| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 519 人关注过本帖
标题:线性表的顺序储存源代码的改错
取消只看楼主 加入收藏
gdbdx2
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2011-7-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
线性表的顺序储存源代码的改错
编译出4个错,怎么改,本人新手,这是关于线性表的顺序储存
#include<stdio.h>
#include <stdlib.h>
#define Listinitsize 100
#define Listincrement 10
typedef struct {
    int *elem;
    int length;
    int listsize;
}Sqlist;

int InsertSList(Sqlist *L,int n,int i,int x);
int DeleteSList(Sqlist *L,int n,int i);

main()
{
    int i,n,m,x;
    Sqlist L;
    printf("请输入线性表的表长:");
    scanf("%d",&n);
    printf("\n");
    printf("the list element is:");
    for(i=0;i<n;i++)
    scanf("%d",&i);
    printf("请选择\n1:插入元素操作\n2:删除元素操作");
    scanf("%d",&m);
switch(m)
{
case 1:{
    printf("i=,x=:");
    scanf("%d,%d",&i,&x);
    InsertSList(Sqlist *L,int i,int n,int x);
}
break;
case 2:{
    printf("i=:");
    scanf("%d",&i);
    int DeleteSList(Sqlist *L,int i,int n);
       }
    break;
default:
    printf("ERROR");
}

int DeleteSList(Sqlist *L,int i,int n)//在长度为n的L线性表删除第i个元素
{
int j,y;
if(i<1||i>n+1)
{
    printf("ERROR");
    return 0;
}
else
{
    y=L[i];
    for(j=i+1;j<n;j++)
    {
        L[j]=L[j+1];
    }
          n=n-1;
        return 1;
}
int InsertSList(Sqlist *L,int i,int n,int x)//在长度为n的L线性表的第i个元素之前插入
{
int j;
if(i<1||i>n+1)
{
    printf("ERROR");
    return 0;
}
else
{
    for(j=n;j<n;j--)
    {
        L[j+1]=L[j];
    }
        L[i]=x;
        n=n+1;
        return 1;
}
搜索更多相关主题的帖子: element include 源代码 线性表 
2011-07-17 12:15
gdbdx2
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2011-7-17
收藏
得分:0 
回复 2楼 小菜小C
这是对以个网上基础程序改写的,你说的对,我在C语言后面的指针和结构体学不熟练,谢谢提醒
2011-07-22 11:26
gdbdx2
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2011-7-17
收藏
得分:0 
回复 2楼 小菜小C
#include<stdio.h>
#include <stdlib.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct {
    int *elem;
    int length;
    int listsize;
}Sqlist;
int InitSList(Sqlist &L);
int InsertSList(Sqlist *L,int i,int n,int x);
int DeleteSList(Sqlist *L,int n,int i);
void main()                  
{
    int i,n,m,x;
    Sqlist *L;
    InitSList(SqList &L);
    printf("请输入线性表的表长:");
    scanf("%d",&n);
    printf("\n");
    printf("线性表的元素分别为:\n");
    for(i=0;i<=n;i++)
    scanf("%d",&i);
    printf("请选择\n1:插入元素操作\n2:删除元素操作\n");
    scanf("%d",&m);
switch(m)
{
case 1:{
    printf("请输入插入元素的位置:");
    scanf("%d",&i);
    printf("请输入插入元素:");
    scanf("%d",&x);
    int InsertSList(Sqlist *L,int i,int n,int x);
    printf("线性表的元素分别为:\n");
    for(i=0;i<=n;i++)
        printf("%d",L->listsize);
       }
break;
case 2:{
    printf("请输入删除元素的位置:");
    scanf("%d",&i);
    int DeleteSList(Sqlist *L,int i,int n);
    printf("线性表的元素分别为:\n");
    for(i=0;i<=n;i++)
        printf("%d",L->listsize);
       }
    break;
default:
    printf("ERROR");
}
}
int InitSList(SqList &L)
{
    L->elem = (int *)malloc(LIST_INIT_SIZE * sizeof(int));
    if(!L->elem) exit(OVERFLOW);
    L->length = 0;
    L->listsize = LIST_INIT_SIZE;
    return 1;
}
                           
int DeleteSList(Sqlist *L,int i,int n)//在长度为n的L线性表删除第i个元素
{
    int j,y;
    if(i<1||i>n+1)
    {
       printf("ERROR");
       return 0;
    }
    else
    {
         y=L->listsize;                       
         for(j=i+1;j<n;j++)
        {
            L[j]=L[j+1];            
        }
          --L->length;
        return 1;
    }
}
int InsertSList(Sqlist *L,int i,int n,int x)//在长度为n的L线性表的第i个元素之前插入
{
    int j;
    if(i<1||i>n+1)
    {
        printf("ERROR");
        return 0;
    }
    else
    {
      for(j=n;j<n;j--)
      {
          L[j+1]=L[j];
      }
         L->listsize=x;
         ++L->length;
         return 1;
    }
}
我改了之后为什么初始化不了线性表,在InitSlist(Sqlist &L)出现4个错误
2011-07-22 13:16
gdbdx2
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2011-7-17
收藏
得分:0 
谢谢啊,我的基础是不扎实!

2011-08-20 23:52
快速回复:线性表的顺序储存源代码的改错
数据加载中...
 
   



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

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