C語言基礎例項—3句解決數字出現頻率問題

Lanyan9發表於2020-11-10

三句程式碼求出陣列內數字的頻率

看到這個標題,怎麼,期待不?

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]++就很熟悉了吧,哈哈哈,就是這種獲取新知識的感覺,好了,睡了。

相關文章