台灣最大程式設計社群網站
線上人數
1142
 
會員總數:245130
討論主題:189035
歡迎您免費加入會員
討論區列表 >> C/C++ >> C語言[輸入眾值,求出現機率最高的那個數字]
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C語言[輸入眾值,求出現機率最高的那個數字]
價值 : 0 QP  點閱數:3363 回應數:5

樓主

流雲 版主
初級顧問
12472 126
8701 3166
發送站內信

捐贈 VP 給 流雲繫絮
假設我輸入12個不同的整數

求出現次數最多的那一個整數是多少∼

類似此種程式,如何寫呢?

剛接觸C 問題稍多,請見諒︿︿"..

本篇文章發表於2004-12-12 13:53
== 簽名檔 ==
已經不常活動於小舖了
小舖的過去好友們若要與我聯絡
請使用Email信箱
Lansea.chu @ gmail
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

好手
捐贈 VP 給 好手 檢舉此回應
你應該會寫vb吧....
你先用vb的觀念想一下大概要怎麼做,語法的部分其實不難...
想一下吧∼
本篇文章回覆於2004-12-12 14:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

流雲
捐贈 VP 給 流雲繫絮 檢舉此回應
我現在是不太懂
要怎麼判斷哪個數字輸入的比較多= =?
用哪種迴圈

至於C++宣告陣列那些我也不太懂要怎麼寫法

結構那些我都還沒搞清楚呢>"<
本篇文章回覆於2004-12-12 15:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

米蟲
檢舉此回應
#include<iostream>

using namespace std;

int main(int argc , char argv[])
{
        int n;
        int number[12][2]={0};
        
        for(int i=0;i<12;i++){
                cin>>n;
                for(int j=0;j<i;j++){
                        if(n==number[j][0]){
                                number[j][1]++;
                                break;
                        }
                }
                number[i][0]=n;
                number[i][1]=1;
        }

        int maxTimes=number[0][1];
        for(int k=1;k<12;k++){
                if(number[k][1]>maxTimes)
                        maxTimes=number[k][1];
        }

        for(int l=0;l<12;l++){
                if(number[l][1]==maxTimes)
                        cout<<number[l][0]<<"出現"<<number[l][1]<<"次"<<endl;
        }

        return 0;
}

應該會有更好的演算法,但我一時想不出來,請多指教
本篇文章回覆於2004-12-16 16:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

米蟲
檢舉此回應
#include<iostream>

using namespace std;

int main(int argc , char argv[])
{
        int n;
        int number[12][2]={0};
        
        for(int i=0;i<12;i++){
                cin>>n;
                for(int j=0;j<i;j++){
                        if(n==number[j][0]){
                                number[j][1]++;
                                break;
                        }
                }
                number[i][0]=n;
                number[i][1]=1;
        }

        int maxTimes=number[0][1];
        for(int k=1;k<12;k++){
                if(number[k][1]>maxTimes)
                        maxTimes=number[k][1];
        }

        for(int l=0;l<12;l++){
                if(number[l][1]==maxTimes)
                        cout<<number[l][0]<<"出現"<<number[l][1]<<"次"<<endl;
        }

        return 0;
}


應該有更好的演算法,但一時想不出來,請多指教
本篇文章回覆於2004-12-16 16:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

米蟲
檢舉此回應
sorry,因為沒電腦沒有反應,多貼了一次
本篇文章回覆於2004-12-16 16:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.