| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3016 人关注过本帖
标题:自己苦想终于解决了::大家帮我看看错在哪里了,题目也贴出了,Segmentati ...
取消只看楼主 加入收藏
zhao72349947
Rank: 1
来 自:成都东软学院
等 级:新手上路
帖 子:60
专家分:5
注 册:2012-10-20
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:1 
自己苦想终于解决了::大家帮我看看错在哪里了,题目也贴出了,Segmentation fault:段错误,检查是否有数组越界,指针异常,访问到不应该访问的内存区
程序代码:
Description
有一个线性表需要你实现插入和删除操作。

ins x n:表示在x位置插入整数n。

del x:表示删除x位置上的数据。

show:表示打印出该表中的所有元素。

Input
有多组测试数据。每个测试数据第一行给出操作数M(0<M<50000);之后的M行随机给出操作类型。

Output
输出show的结果,一个show操作的结果占一行。

Sample Input
8
ins 1 50
ins 2 56
ins 2 39
show
ins 1 34
show
del 2
show
Sample Output
50 39 56
34 50 39 56


#include<stdio.h>
#define MAXSIZE 100
struct sqllist
{
       int date[MAXSIZE];
       int last;
};
struct sqllist L;

int init_L()
{
   L.last=-1;
}

int insert_L()
{
    int i,x,j;
    scanf("%d%d",&i,&x);
    if(L.last>=MAXSIZE)
    {
    printf("表满!\n");
    return 0;
    }
    if(i<1||i>(L.last+2))
    {
    printf("i的值不对!\n");
     return 0;
    }
    for(j=L.last;j>=i-1;j--)
    {
    L.date[j+1]=L.date[j];
    }
    L.date[i-1]=x;
    L.last++;
    return 1;
}

int delete_L()
{
    int n,m,i,j;
    i=L.last;
     scanf("%d",&n);
     for(j=n;j<=i;j++)
        L.date[j-1]=L.date[j];
          L.last=L.last-1;
}
int printf_L()
{
    int j;
    for(j=0;j<L.last;j++)
    {
    printf("%d ",L.date[j]);
    }
    printf("%d\n",L.date[L.last]);
}

int main()
{
    int i,n;
    char m1[10];
    init_L();
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
    scanf("%s",m1);
    if(strcmp(m1,"ins")==0)
    {
         insert_L();
    }
        if(strcmp(m1,"del")==0)
        {
          delete_L();
        }
    if(strcmp(m1,"show")==0)
        {
            printf_L();
        }
    }
}


[ 本帖最后由 zhao72349947 于 2013-3-13 17:52 编辑 ]
搜索更多相关主题的帖子: 测试 线性表 color 
2013-03-13 09:51
zhao72349947
Rank: 1
来 自:成都东软学院
等 级:新手上路
帖 子:60
专家分:5
注 册:2012-10-20
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<string.h>
#define MAXSIZE 100000
struct sqllist
{
       int date[MAXSIZE];
       int last;
};
struct sqllist L;
void ins_L()
{
    int i,x,j;
    scanf("%d%d",&i,&x);
    for(j=L.last;j>=i-1;j--)
    {
        L.date[j+1]=L.date[j];
    }
    L.date[i-1]=x;
    L.last++;
}
void del_L()

 {
     int n,i,j;
     i=L.last;
      scanf("%d",&n);
      for(j=n;j<=i;j++)
         L.date[j-1]=L.date[j];
      L.last=L.last-1;

 }


void show_L()
{
    int j;
    for(j=0;j<L.last;j++)
    {
        printf("%d ",L.date[j]);
    }
     printf("%d\n",L.date[L.last]);
}
int main()
{
    long int n;
    while(scanf("%ld",&n)!=EOF){
    char m[4];
     L.last=-1;
     while(n>0)
    {
        scanf("%s",m);
         if(strcmp(m,"ins")==0)
        {
             ins_L();
        }
        if(strcmp(m,"del")==0)
        {
            del_L();
        }
        if(strcmp(m,"show")==0)
        {
            show_L();
        }
        n--;
    }
    }
    return 0;
}
2013-03-13 17:51
快速回复:自己苦想终于解决了::大家帮我看看错在哪里了,题目也贴出了,Segme ...
数据加载中...
 
   



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

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