c++在陣列中查詢元素並返回位置下標,統計某元素出現次數程式
阿新 • • 發佈:2019-02-13
IDE是VS2013.
在陣列中查詢元素並返回位置下標,若找到元素則返回下標(多個相同元素,返回最後一個),沒找到返回-1;
統計某元素出現次數程式,沒出現返回0;
執行結果:#include "stdafx.h" #include<iostream> using namespace std; int find(int ar[], int n, int element)//查詢元素並返回位置下標,find(陣列,長度,元素) { int i = 0; int index=-1;//原始下標,沒找到元素返回-1 for (i = 0; i <n; i++) { if (element ==ar[i]) { index=i;//記錄元素下標 } } return index;//返回下標 } int frequency(int ar[], int n, int element)//統計某元素出現次數(陣列,長度,元素) { int i = 0; int count= 0;//出現次數 for (i = 0; i <n; i++) { if (element == ar[i]) { count++; } } return count; } int _tmain(int argc, _TCHAR* argv[]) { int a[6] = { 1, 2, 3, 4,5,5 }; int index = find(a, 6, 4);//下標,查詢元素4的下標 int count= frequency(a, 6, 5);//次數,查詢元素5出現的次數 cout <<index<< endl; cout << count<<endl; system("pause"); return 0; }
下面用c++函式模板實現上面的程式。可以在int、float、double、char、string等型別數組裡實現功能。
執行結果:#include "stdafx.h" #include<iostream> using namespace std; template<typename T> int find(T ar[], int n, T element)//查詢元素並返回位置下標,find(陣列,長度,元素) { int i = 0; int index=-1;//原始下標,沒找到元素返回-1 for (i = 0; i <n; i++) { if (element ==ar[i]) { index=i;//記錄元素下標 } } return index;//返回下標 } template<typename T> int frequency(T ar[], int n,T element)//統計某元素出現次數,frequency(陣列,長度,元素) { int i = 0; int count = 0;//出現次數 for (i = 0; i <n; i++) { if (element == ar[i]) { count++;//次數+1 } } return count; } int _tmain(int argc, _TCHAR* argv[]) { string s[6] = { "ab", "cd", "ef", "gh", "ij", "ij" }; int index = find<string>(s, 6,"cd");////下標,查詢字串"cd"的下標 int count = frequency<string>(s, 6, "ij");//次數,查詢字串"ij"出現的次數 cout << index<<endl; cout <<count<< endl; system("pause"); return 0; }