整數序列中的眾數和中位數

2021-06-26 15:32:14 字數 1622 閱讀 5542

題目

- 整數序列中的眾數和中位數 **

元培-from whf

描述輸入無符號整數序列(不多於500個整數,每個整數不大於150),計算序列的眾數和中位數。 

眾數是指出現次數最多的那個數;如果有多個數出現的次數都達到最多,則取最先出現的數為眾數;如果所有的數都相等,則眾數由大寫 no 表示。 

中位數是指按大小排序後正好居中的那個數(如果序列有奇數個整數,大小位於序列中最中間的數為中位數,如果序列中有偶數個整數,則取中間兩個數的平均值,以除式表示平均值)

例如,有如下6個數: 

6,2,4,2,3,3 

2和3出現的次數最多,均為2次,但序列中2先出現,因此,眾數選擇2;在中間位置的兩個數均為3,因此,中位數是(3+3)/2; 

如果序列是 

1,2,4,2,5,3,6 

則眾數是2,中位數是3。 

如果是序列 

2,2,2,2,2,2,2 

則眾數為 no,中位數為2 

關於輸入

第1行表示後面的整數序列個數; 之後若干行,每行對應乙個無符號整數序列,整數之間由逗號間隔。

關於輸出

輸出每行對應的眾數和中位數(眾數在前),其間逗號間隔。如果沒有眾數,則以no表示。 

如果中位數是兩個數的平均數,則輸出形式為:(x1+x2)/2,其中,x1 <= x2

例子輸入

3

6,2,4,2,3,3

1,2,4,2,5,3,6

2,2,2,2,2,2,2

例子輸出

mode=2,median=(3+3)/2

mode=2,median=3

mode=no,median=2

提示每個序列中整數的個數請自己想辦法計算。

#include 

#include

intint_compare

(const

void*pa

,const

void*pb

)int

main();

/* 不同的整數出現的次數 */

intk=0

,x=0

;/* 眾數出現的次數及其下標 */

intj

;/* 輸入 */

scanf

("%d",&

a[0]);

while

(scanf

(",%d",&

a[++n

]))continue

;/* 眾數 */

for(j=

0;j++j

)for(j

=0;j

++j)}

if(k==

n)else

/* 中位數 */

qsort(a

,n,sizeof

(int

),int_compare

);if(n

%2==0

)else

}return0;

}

眾數和中位數的應用題 什麼是眾數和中位數

什麼是眾數和中位數2019 09 25 15 30 00文 顏雨 眾數是在一組資料中,出現次數最多的資料,是一組資料中的原資料。中位數是按順序排列的一組資料中居於中間位置的數,代表乙個樣本 種群或概率分布中的乙個數值,其可將數值集合劃分為相等的上下兩部分。眾數眾數是指在統計分布上具有明顯集中趨勢點的...

找出序列中的中位數

乙個隨機序列,找出序列的中位數,當序列個數為奇數時,為中間位置上的數字 當序列為偶數時,為中間兩個數字的平均值。這種題有很多種做法,比較有代表性的由 1 partition法 利用快排關鍵字的查詢方法 a.隨機選取乙個關鍵字key,將序列二分 b.若關鍵字的下標大於n 2,則繼續對序列的左半部分執行...

R語言平均值,中位數和眾數

平均值是通過取數值的總和並除以資料序列中的值的數量來計算。函式mean 用於在r中計算平均值。語法 r中計算平均值的基本語法是 mean x,trim 0,na.rm false,以下是使用的引數的描述 示例 create a vector.x c 17,8,6,4.12,11,8,54,11,18...