一维数组插入数据运行时错误

img

img


不知道哪里错了,编译器上能够正常运行,但是交的时侯显示运行时错误,为什么要凑够30个字

应该是因为当处理要插入的数小于等于第一个元素时出错了,加入对此种情况的处理即可,可以打印j在修改前后的值观察一下即可知道代码的运行过程,修改如下:

#include <iostream>
using namespace std;

int main(void){
    
    int i,j;
    int a[11];
    for(i=0;i<=9;i++){
        cin>>a[i];
    } 
    int key;
    cin>>key;
    
//    cout<<"j="<<j<<endl;
    
    for(i=0;i<=9;i++){
        if(key>a[i]){
            j=i+1;
        }
    }
    
    if(key<=a[0]){
        
        for(i=10;i>0;i--){
            a[i]=a[i-1];            
        }
        a[0]=key;
        
    }else{
        for(i=9;i>=j;i--){
            a[i+1]=a[i];
        }
        a[j]=key;
        
        
        
    }
    //    cout<<"j="<<j<<endl;
    for(i=0;i<=10;i++){
        cout<<a[i]<<" ";
    }

    
    
    
    
    return 0;
    
    
} 

img

j=i+1后要break结束循环