我正在尝试编写如下代码:它首先从用户那里获得一个int,该int给出了用户想要拥有的数组索引的数量(n),然后代码创建了索引数量为[[n的数组。然后必须打印每个输入数字的频率。运行下面的代码会导致分段错误。任何解决方案将不胜感激。
我的代码: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;
}
1 <= n <= 100NOTE:
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;
}
尝试here