|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
统计n个数中每个数出现的次数
- #include<bits/stdc++.h>
- using namespace std;
- int main()
- {
- int n,i,j,t;
- cin>>n;
- int a[100],b[100]={0};
- for(i=0;i<n;i++)
- cin>>a[i];
- for(i=0;i<=100;i++)
- {
- b[a[i]]++;
- }
- for(i=0;i<=100;i++)
- if(b[i]!=0)
- {
- cout<<i<<' '<<b[i]<<endl;
- }
- }
复制代码
你的程序大致上是正确的,只是在统计每个数出现次数的那个循环中,应该是遍历输入的那n个数,而不是直接循环到100。
你应该将
修改为
这样就只计数你输入的那n个数中每个数的出现次数了。这是修改后的代码:
- #include<bits/stdc++.h>
- using namespace std;
- int main()
- {
- int n,i,j,t;
- cin>>n;
- int a[100],b[100] = {0};
- for(i=0; i<n; i++)
- cin>>a[i];
- for(i=0; i<n; i++)
- {
- b[a[i]]++;
- }
- for(i=0; i<=100; i++)
- {
- if(b[i]!=0)
- {
- cout<<i<<' '<<b[i]<<endl;
- }
- }
- return 0;
- }
复制代码
注意:给定的这个(数组b的范围是0到100)用来计数的程序只适用于所输入的数字在1到100内,如果输入的数超出了这个范围,那么程序可能会出现错误。为了更灵活的处理,可以使用map来存储每个数出现的次数,这样无论数的范围大小,都可以很好的处理。
求最佳答案
|
|