說明
求N個整數(shù)的平均數(shù),眾數(shù)和中位數(shù)。
小知識:
- 眾數(shù)
如有9個數(shù):17 13 17 9 17 17 3 16 17 17出現(xiàn)的次數(shù)最多,即為這組數(shù)的眾數(shù)。
此題保證眾數(shù)是唯一的。 - 中位數(shù)
如有9個數(shù):102 170 96 90 97 106 110 182 100
將這9個數(shù)按一定的順序(從大到小或從小到大)排列后得到:
182 170 110 106 102 100 97 96 90 正中間的一個數(shù)是102,102是這組數(shù)的中位數(shù)。
而這10個數(shù):106 99 104 120 107 112 33 102 97 100
按一定順序排列后得到:120 112 107 106 104 102 100 99 97 33
正中間有兩個數(shù):104 102,中位數(shù)就是這兩個數(shù)的平均數(shù),即(104+102)/ 2 = 103。
輸入格式
第一行為整數(shù)N(5 <= N <= 10000 ) 第二行為空格隔開的N個數(shù)Ai(0 <= Ai <= 100 )文章來源:http://www.zghlxwxcb.cn/news/detail-466300.html
輸出格式
輸出空格隔開的平均數(shù) 眾數(shù) 中位數(shù)(平均數(shù)保留兩位小數(shù),中位數(shù)保留一位小數(shù))。文章來源地址http://www.zghlxwxcb.cn/news/detail-466300.html
#include<stdio.h>
int b[101];
int main(){
int n,i,j,s=0,k,temp;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++){
scanf("%d",&a[i]);
k=a[i];
s=s+k;
b[k]++;
}
printf("%.2lf ",s*1.0/n);
int t=0;
for(i=0;i<n;i++){
if(b[t]<b[i]){
t=i;
}
}
printf("%d ",t);
for(i=0;i<n-1;i++){
for(j=0;j<n-1;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
if(n%2!=0){
printf("%.1lf",a[n/2]*1.0);
}else{
printf("%.1lf",(a[n/2]+a[n/2-1])/2.0);
}
return 0;
}
#include<iostream>
#include<iomanip>
using namespace std;
void sort(int a[],int n);
int main(){
int n;
int a[10000];
int b[101];
int m=0;
double mid=0;
double avg=0;
int s=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
b[a[i]]++;
s=s+a[i];
}
int max=0;
for(int i=0;i<=100;i++){
if(b[i]>max){
max=b[i];
m=i;
}
}
avg=s*1.0/n;
sort(a,n);
if(n%2!=0){
mid=a[n/2];
}
else{
mid=(a[n/2]+a[n/2-1])*1.0/2;
}
cout<<setiosflags(ios::fixed)<<setprecision(2)<<avg<<" ";
cout<<m<<" ";
cout<<setiosflags(ios::fixed)<<setprecision(1)<<mid<<endl;
}
void sort(int a[],int n){
int t=0;
for(int i=0;i<n;i++){
for(int j=0;j<n-1-i;j++){
if(a[j]<a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
到了這里,關(guān)于C++編程計算平均數(shù)、眾數(shù)和中位數(shù),可以快速解決計算問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!