三句代码求出数组内数字的频率
看到这个标题,怎么,期待不?
1.话不多说,直接看代码:
#include<iostream>
using namespace std;
int main()
{
int a[] = {1,1,2,3,5,4,2,5,4,3};
int t[6];
for (int i = 1; i < 6; i++) t[i] = 0; //要找的数字
for (int i = 0; i < 10; i++) t[a[i]]++; //如果a[i]=t[i],就加1
for (int i = 1; i <= 5; i++) cout << i << "有" << t[i] << "个" << endl; //输出
return 0;
}
有没有眼前一亮,呵,数组原来可以这么用。
2. 还是稍微讲解一下
大家看这句:
for (int i = 0; i < 10; i++) t[a[i]]++; //如果a[i]=t[i],就加1
这个算法的关键在于 t[a[i]]++,它的意思就是说呢,
if(a[i]==i) t[i]++;
前面t[i]我们设置的是数字i对应出现的频率t[i],所以对于上一行那个判断和t[i]++就很熟悉了吧,哈哈哈,就是这种获取新知识的感觉,好了,睡了。