您的位置:首页 > 其它

我是菜鸟 之输入几个数,在数组中去重并且统计出现的次数

2015-12-23 15:54 435 查看
想到一个问题:输入组数字,如何去重并且统计出现的次数呢?

最早想到的是:N个数遍历查找N次,但这种算法的复杂度较高且不灵活。

于是辣鸡的我想了这个办法:

#include<stdio.h>
#include<stdlib.h>
int main()
{
int flag=0;
int b[100],n,N=0;  //这里的数组b中存着要处理的数,N是有N个不同的数
int a[100][2]={0};  //数组a中存着对应的值和出现次数
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&b[i]);
for(int j=0;j<N;j++)
{
flag=0;
if(a[j][0]==b[i])
{
flag=1;
a[j][1]++;
break;
}
}
if(flag==0)
{a
[1]=1;  a[N++][0]=b[i];}
}
for(int i=0;i<N;i++)
printf("%d %d\n",a[i][0],a[i][1]);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: