Liana
Liana

Reputation: 314

Frequency of arrays in C++

I'm trying to write a code which works like this: it first gets an int from the user which presents the number of array indexes the user would like to own (n), then the code creates an array with n number of indexes. It then has to print the frequency of every entered number. Running my below code results in a segmentation fault. Any solution will in advance be appreciated.

My code:

int main()
{
    int n, index;
    cin>>n;
    int ar[n];
    int freq[100]={0};
    for (int i = 0; i < n; i++)
    {
        cin>>ar[i];
    }
    for (int i = 0; i < 100; i++)
    {
        index=ar[i];
        freq[index]++;
    }
    for (int i = 0; i < 100; i++)
    {

        cout<<freq[i]<<' ';
    }
    return 0;
}

NOTE: 1<=n<=100

Upvotes: 0

Views: 791

Answers (1)

andr&#232;s coronado
andr&#232;s coronado

Reputation: 170

I would do something like this:


int main ()
{
  int n, input;
  while (n > 100 || n < 1)

    cin >> n;

  // indexes 0 - 99
  int freq[100] = { 0 };

  for (int i = 0; i < n; i++)
    {
      cout << "number: ";
      cin >> input;
      if (input > 0 && input <= 100)
        freq[input - 1]++;
    }

  for (int i = 0; i < n; i++)
      if (freq[i] != 0)
         cout << i + 1 << "-->" << freq[i] << &endl;


  return 0;
}

try it here

Upvotes: 1

Related Questions