想到一个问题:输入组数字,如何去重并且统计出现的次数呢?
最早想到的是: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[N][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;
}