Reputation: 314
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
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