给定一个数组[1,4,2,1,4,5,1,6],统计每个数字出现的次数并输出(不重复)。
以前上python课的时候遇到过这样类似的题,Python是用键和值也就是字典来做的,这次自己用C语言写一下。
#include<stdio.h>
int main()
{
int arr[8]={1,4,2,1,4,5,1,6};//给定数组
int res[10]={0};//新建一个数组,数组的容量其实取决于arr数组里最大元素的值
for(int i=0;i<8;i++)
{
res[arr[i]]++;//如果出现了这个元素,这个元素在另一个数组对应位置上面的映射就加1
}
for(int i=0;i<8;i++)
{
if(res[i]>0)//不重复输出元素
printf("%d出现的次数为:%d\n",i,res[i]);
}
return 0;
}
输出结果截图:
统计正确。
其实这种做法可以算是桶排序的一个应用。
桶排序理解可以参考这篇文章:https://www.cnblogs.com/bqwzx/p/11029264.html