雨望 2019-10-07 01:00 采纳率: 0%
浏览 273

c语言编译器dev.cpp求教?

#include<stdio.h>
#include<malloc.h>
#define MAXLEN 100
typedef int elementtype;

typedef struct
{
    elementtype s[MAXLEN];
    int len;
} SqList;

int DelList(SqList *sql,int i,elementtype *x)
{
    int k;
    if((i<1)||(i>sql->len))
    {
        printf("删除的位置不合法!");
        return(0);
    }
    *x=sql->s[i];
    for(k=i+1;k<=sql->len;k++)
       sql->s[k-1]=sql->s[k];
    sql->len--;
    return(1); 

}  

int main()
{
    SqList *seq;
    int p,r,*q,i;
    seq=(SqList*)malloc(sizeof(SqList));
    q=(int*)malloc(sizeof(int));
    printf("输入链表的长度:");
    scanf("%d",&r);
    seq->len=r;
    printf("输入线性表的个元素值:\n");
    for(i=1;i<=seq->len;i++)
      scanf("%d",&seq->s[i]);
    printf("请输入要删除的位置\n");
    scanf("%d",&p);
    DelList(seq,p,q);
    printf("删除的元素为:%d\n",*q);
    return(0);
}

在dev.cpp 5.4.0中编译为什么运行会不成功? 哪里出问题了 求大佬

  • 写回答

5条回答 默认 最新

  • threenewbee 2019-10-07 09:16
    关注
    我这里用devc++自带的gnu c++编译,可以编译,无论是c还是cpp都可以。
    但是你程序有不少逻辑错误
    
    for(k=i+1;k<=sql->len;k++)
    这里k<=sql->len 越界了。
    
    for(i=1;i<=seq->len;i++)
    这里i=0;i<seq->len
    
    
    评论

报告相同问题?