谁能解释一下代码里面每个变量的含义,我昏了

#include<stdio.h>

int main()
{
int n , age[121]={0}, m;
scanf("%d", &n);
for (int i=0; i<n;i++)
{
scanf("%d", &m);
age[m]++;
}
for (int i=0; i<120;i++)
{
int s = age[i];
for(int h=0; h < s; h++)
{
printf("%d ", i);
}
}
return 0;
}

供参考:

#include<stdio.h>

int main()
{
    int n , age[121]={0}, m;
    scanf("%d", &n);    //输入人的总数
    for (int i=0; i<n;i++)
    {
        scanf("%d", &m);//m 是年龄
        age[m]++;      //统计各年龄的人数,假设m=18,age[18]++
    }
    for (int i=0;i<120;i++)
    {
        int s = age[i];  //s是各年龄的总数,假设age[18] = 2
        for(int h=0; h < s; h++)
        {
            printf("%d ", i);//输出两个18,18  18
        }
    }
    
    return 0;
}

输出m出现的次数次的m