【问题描述】需要对一批11个产品的使用寿命数据进行统计,获取他们均值、标准差、最大值、最小值和中位数等数据。要求结合指针和数组两种方式进行处理。
【输入形式】输入11个产品的使用寿命,如28.94, 27.53, 25.27, 31.52, 30.85, 30.10, 25.99, 33.38, 31.05, 29.10, 30.07
【输出形式】The original product life data are:
28.94 27.53 25.27 31.52 30.85 30.10 25.99 33.38 31.05 29.10 30.07
The sorted product life data are:
25.27 25.99 27.53 28.94 29.10 30.07 30.10 30.85 31.05 31.52 33.38
Max:33.38,Min:25.27,Med:30.07,Ave:29.44,Std:2.31
【样例输入】28.94 27.53 25.27 31.52 30.85 30.10 25.99 33.38 31.05 29.10 30.07
【样例输出】
The original product life data are:
The sorted product life data are:
25.27 25.99 27.53 28.94 29.10 30.07 30.10 30.85 31.05 31.52 33.38
Max:33.38,Min:25.27,Med:30.07,Ave:29.44,Std:2.31
//产品使用寿命数据统计
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
double data[11],ave=0,sum=0,temp=0,std=0,t;
cout<<"The original product life data are:"<<endl;
for(int v=0;v<11;++v)
{
cout<<setiosflags(ios::fixed)<<setprecision(2);//设置浮点数以固定的小数位数显示
cin>>data[v];
}
for(int j=0;j<11;j++)
{
for(int i=0;i<10;i++)
{
if(data[i]>data[i+1])
{
t=data[i];
data[i]=data[i+1];
data[i+1]=t;
}
}
}//从小到大排序
cout<<"The sorted product life data are:"<<endl;
for(int t=0;t<11;++t)
{
if(t!=10)
{
cout<<data[t]<<" ";
}
else
{
cout<<data[t]<<endl;
}
}
for(int a=0;a<11;a++)//计算平均数
{
sum+=data[a];
}
ave=sum/11;
for(int b=0;b<11;b++)
{
temp+=pow(data[b]-ave,2);//data[b]-ave的2次方
}
std=sqrt(temp/11);//计算标准差;
cout<<"Max:"<<data[10]<<",";
cout<<"Min:"<<data[0]<<",";
cout<<"Med:"<<data[5]<<",";
cout<<"Ave:"<<ave<<",";
cout<<"Std:"<<std<<endl;
return 0;
}