求解下面程序划线出两个for循环怎么理解

下面这两个划线for循环要怎么理解 输入和输出数组,这个有点难理解

img

for(i=1;i<11;i++) 即从1开始,到10结束(小于11的最大的数是10)。
第一个for循环的意思是获取输入存入数组a下标为1到10的元素,第二个for循环的意思是打印数组a下标为1到10的元素的值。

整个代码的意思就是从输入获取10个元素到数组a,然后从小到大排序后输出这10个元素。

#include <iostream>
using namespace std;
int main(void){
    
    int a[11];
    int i,j,t;
    cout<<"input 10 numbers:"<<endl;
    for(i=1;i<11;i++){
        cin>>a[i];
    }
    cout<<endl;
    
    for(j=1;j<=9;j++){
        for(i=1;i<=10-j;i++){
            if(a[i]>a[i+1]){
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
        }
    }
    
    cout<<"the sorted numbers:"<<endl;
    for(i=1;i<11;i++){
        cout<<a[i]<<" ";
    }
    cout<<endl;
    return 0;
} 

img

第1个就是向a数组里面输入10个数
第2个就是输出a数组里面的10个数

先循环输入十个数,存入数组,然后再循环从数组中输出这十个数