| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 297 人关注过本帖
标题:谁来帮我改改错啊,我快崩溃了
只看楼主 加入收藏
yuan1990
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-3-18
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:4 
谁来帮我改改错啊,我快崩溃了
#include<stdio.h>
#include<malloc.h>
//顺序表类型的定义.
typedef struct
{
   int *elem;//存储空间基地址
   //int elem;
   int length;//数组长度
   int listsize;//顺序表所分配的存储容量
}SqList;
//线性链表的定义
typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode,*linkList;
//建立顺序表的函数
SqList CreateList ( int j)
{
    int i;
    SqList a;
    a.length=10;
    a.listsize=100;
    a.elem=(int *)malloc(a.listsize*sizeof(int));
    printf("现在请输入:");
    for(i=0;i<j;i++)
    {
       scanf("%d",a.elem[i]);
    }
    return a;
}
//建立线性链表的函数
LNode CreateLNode(LNode *a,int i)
{
 int j;
 LNode  *p;
 a=(LNode *)malloc(sizeof(LNode));
 p=a;
 for(j=0;i<i;j++)
 {
  scanf("%d",&p->data);
  p=p->next;
 }
 p->next=NULL;
 return *a;
}
//顺序表的插入函数
void InsertSqList(SqList a,int i)
{
 int j;
 for(j=i;j<=a.length;j++)
 {
  a.elem[j+1]=a.elem[j];
 }
 a.length++;
 scanf("%d",&a.elem[i+1]);
}

//线性链表的插入函数
void InsertLNode(LNode *a,int i,int x )
{
 LNode *p,*q;
 int j;
 for(j=0;j<i;j++)
 {
  p=p->next;
 }
 q=(LNode *)malloc(sizeof(LNode));
 q->data=x;
 q->next=p->next;
 p->next=q;
}
//顺序表的删除函数
void DeleteSqListK(SqList  a,int i,int k)//删除第i个元素后边的k个元素
{
 //while(0<i<a.length&&0<k<a.length)
  while(0<i&&i<a.length&&0<k&&k<a.length)
 {
       int count,j;
    for(count=0;count<k;count++)
    {
     for(j=a.length;j>i;j--)
      a.elem[i+1]=a.elem[j-i-k];
     a.length--;
    }
    return;
 }
 printf("error");
}
//线性链表的删除函数
void DeleteLNodeK(LNode  a,int i,int k)//删除第i个元素后边的k个元素
{
 LNode *p,*q;
 int j;
 for(j=0;j<i;j++)
 {
  p=p->next;
 }
 q=p;
 for(j=0;j<k;j++)
 {
  q=q->next;
 }
 p->next=q;

}
//主函数
void main()
{
 SqList a;
 int i;
    SqList CreateList( int j);
 void DeleteSqListK(SqList  a,int i,int k);
    printf("现在我们来建立一个顺序表");
  a = CreateList( 10 );
  for(i=0;i<a.length;i++)
  {
   //printf("%d",&a.elem[i]);
   printf("%d",*a.elem);
   a.elem++;
  }
 printf("现在我们来测试一下删除函数");
 DeleteSqListK( a,3,3);
 for(i=0;i<a.length;i++)
 {
  printf("%d",&a.elem[i]);
 }
}
我不知道哪里错了,很纠结,他说什么检测到mac格式要转换成dos格式,但是我用UE转换了还是没用,谁来救救我吧
搜索更多相关主题的帖子: 存储空间 
2011-03-18 18:01
thlgood
Rank: 5Rank: 5
等 级:职业侠客
帖 子:281
专家分:381
注 册:2010-9-24
收藏
得分:7 
顺序表的删除函数返回多少??

这个程序我看得不太懂,我来帮顶以下。顺便整理一下排版,方表高手阅读
程序代码:
#include<stdio.h>
#include<malloc.h>

//顺序表类型的定义.
typedef struct 
{
    int *elem;//存储空间基地址
    //int elem;
    int length;//数组长度
    int listsize;//顺序表所分配的存储容量
}SqList;

//线性链表的定义
typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode,*linkList;

//建立顺序表的函数
SqList CreateList ( int j)
{
    int i;
    SqList a;
    a.length=10;
    a.listsize=100;
    a.elem=(int *)malloc(a.listsize*sizeof(int));
    printf("现在请输入:");
    for(i=0;i<j;i++)
    {
       scanf("%d",a.elem[i]);
    }
    return a;
}

//建立线性链表的函数
LNode CreateLNode(LNode *a,int i)
{
    int j;
    LNode  *p;
    a=(LNode *)malloc(sizeof(LNode));
    p=a;
    for(j=0;i<i;j++)
    {
        scanf("%d",&p->data);
        p=p->next;
    }
    p->next=NULL;
    return *a;
}

//顺序表的插入函数
void InsertSqList(SqList a,int i)
{
    int j;
    for(j=i;j<=a.length;j++)
    {
        a.elem[j+1]=a.elem[j];
    }
    a.length++;
    scanf("%d",&a.elem[i+1]);
}

//线性链表的插入函数
void InsertLNode(LNode *a,int i,int x )
{
    LNode *p,*q;
    int j;
    for(j=0;j<i;j++)
    {
        p=p->next;
    }
    q=(LNode *)malloc(sizeof(LNode));
    q->data=x;
    q->next=p->next;
    p->next=q;
}

//顺序表的删除函数
void DeleteSqListK(SqList  a,int i,int k)//删除第i个元素后边的k个元素
{
//while(0<i<a.length&&0<k<a.length)
    while(0<i&&i<a.length&&0<k&&k<a.length)
    {
        int count,j;
        for(count=0;count<k;count++)
        {
            for(j=a.length;j>i;j--)
                a.elem[i+1]=a.elem[j-i-k];
            a.length--;
    }
    return;  /*这里return 什么??*/
    }
    printf("error");
}

//线性链表的删除函数
void DeleteLNodeK(LNode  a,int i,int k)//删除第i个元素后边的k个元素
{
    LNode *p,*q;
    int j;
    for(j=0;j<i;j++)
    {
          p=p->next;
    }
    q=p;
    for(j=0;j<k;j++)
    {
        q=q->next;
    }
    p->next=q;
}

//主函数
void main()
{
    SqList a;
    int i;
    SqList CreateList( int j);
    void DeleteSqListK(SqList  a,int i,int k);
    printf("现在我们来建立一个顺序表");
    a = CreateList( 10 );
      for(i=0;i<a.length;i++)
    {
        //printf("%d",&a.elem[i]);
        printf("%d",*a.elem);
        a.elem++;
    }
    printf("现在我们来测试一下删除函数");
    DeleteSqListK( a,3,3);
    for(i=0;i<a.length;i++)
    {
        printf("%d",&a.elem[i]);
    }
}


[ 本帖最后由 thlgood 于 2011-3-18 18:30 编辑 ]

o(∩∩)Linux & Python 群:187367181
2011-03-18 18:29
yuan1990
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-3-18
收藏
得分:0 
返回SqList a,我改了再试试啊
2011-03-18 19:06
yuan1990
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-3-18
收藏
得分:0 
改了,还是不行啊,还是那个什么
2011-03-18 19:12
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:7 
Sqlist是一个变量还是数据类型啊?你竟然用他做函数的返回类型!把我也搞糊涂了。建议还是给结构体取名吧!

   唯实惟新 至诚致志
2011-03-18 20:43
快速回复:谁来帮我改改错啊,我快崩溃了
数据加载中...
 
   



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

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