关于数据结构插入元素的问题

img


#include
#define MAXSIZE 10
#define ERROR 0
typrdef struct{
    int *elem;
    int length;
    
}Sqlist;
viod insert(Sqlist &l;int i;int e){
    if(length==MAXSIZE)
        return OVERFLOW;
    if(i<1||i>length+1)
        return Insert position error!;
    for(int j=length-1;j>=i-1;j--){
        elem[j]=elem[j+1];
        
    }
    elem[i-1]=e;
    l.length++;
}
int main(){
    Sqlist l;
    int n;
    scanf("%d",&n);
    for(int j=0;jscanf("%d ",&l.elem[j]);
    }
    print("Before:(")
    for(int j=0;j-1;j++){
        printf("%d,",l.elem[j]);
    }
    printf("%d)\n",l.elem[n-1]);
    int i,e
        scanf("%d %d",&i,&e);
    void insert(l,i,e);
    printf("After:(");
    for(int j=0;jprintf("%d,"l.elem[j]);
    }
    printf("%d)",l.elem[n]);
    return 0;
  
    
}

img

为什么e和ⅰ不能输入,求解

顺序表的初始化没有。

没输出Before,还没执行到这。
第二行输入5个数,应该是按行输入,一次输入"1 2 3 4 5"当成一个整数导致失败退出了。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7800499
  • 你也可以参考下这篇文章:牛客小白月赛2 E.是是非非
  • 除此之外, 这篇博客: 整型和浮点数据的储存中的 E 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 首先,E为一个无符号整数(unsigned int) 这意味着,如果E为8位,它的取值范围为0~255;如果E为11位,它的
    取值范围为0~2047。但是,我们知道,科学计数法中的E是可以出现负数的,所以IEEE 754规定,存入内存时E的真
    实值必须再加上一个中间数,对于8位的E,这个中间数是127;对于11位的E,这个中间数是1023。比如,2^10的E
    是10,所以保存成32位浮点数时,必须保存成10+127=137,即100010