C ++中的数组频率

问题描述 投票:0回答:1

我正在尝试编写如下代码:它首先从用户那里获得一个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; }

NOTE:

1 <= n <= 100
c++ arrays frequency
1个回答
0
投票
我会做这样的事情:

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    
© www.soinside.com 2019 - 2024. All rights reserved.