What is wrong with this code

Counting sort - I tried to figure out but could not resolve

#include
using namespace std;
int freq[1000010]={0};
int main()
{
int a[100] = {0};
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}

for(int i=0;i<n;i++)
{
    freq[a[i]]++;
}
int j=0;
for(int i=0;i<=1000000;i++)
{
   while(freq[i]>0)
   {
       a[j++] = i;
       freq[i]--;
   }
}


for(int i=0;i<n;i++)
{
    cout<<a[i]<<endl;
}
return 0;

}