統計相同數字的個數

/*
程序讀入一個int數組,假定數組項小於50,輸出結果爲兩列:第一列是各個不同的數組元素,
第二列是每個元素在數組中出現的次數的總和。
第一列中的內容應該是從大到小排序。
例如:對於數組值:
-12,3,-12,4,1,1,-12,1,-1,1,2,3,4,2,3,-12
輸入形式:
N     Count
4     2
3     3
2     2
1     4
-1    1
12    4
*/
#include <iostream>
#include <iomanip>
using namespace std;
void sort(int a[],int size)
{
    int i,j,temp;
    for(i=0;i<size;i++)
        for(j=i+1;j<size;j++)
    {
        if(a[i]<a[j])
        {
            temp=a[i];
            a[i]=a[j];
            a[j]=temp;
        }
    }
}
void function(int b[],int len)
{
    sort(b,len);
    for(int i=0;i<len;i++)
        cout<<setw(3)<<b[i];
    cout<<endl<<setw(3)<<"N"<<"     "<<setw(3)<<"Count"<<endl;
    cout<<setw(3)<<b[0];
    int num[50];
    for(int i=0;i<50;i++)
        num[i]=1;
    int j=0;
    for(int i=1;i<len;i++)
    {
        if(b[i]==b[i-1])
        {
            num[j]++;
        }
        else
        {
             cout<<"     "<<setw(3)<<num[j]<<endl;
             cout<<setw(3)<<b[i];
             j++;
        }
        if(i==len-1)
            cout<<"     "<<setw(3)<<num[j];
    }
}
int main()
{
    int s[]={-12,3,-12,4,1,1,-12,1,-1,1,2,3,4,2,3,-12};
    function(s,16);
    return 0;
}

運行結果:


一個小問題:

數組num[]初始化時,num[50]={1},僅表示num[0]=1,其它各個元素均爲0。

發佈了29 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章