📄 电子测量.cpp
字号:
#include<stdio.h>
#include<math.h>
void main()
{
int n,h;
float x[100];
lab:
printf("请输入数据总个数\n");
scanf("%d",&n);
if(n<3 || n>20)
{
printf("错误,请输入一个3到20之间的整数.\n"); //防止所判断的数据超出
goto lab;
}
printf("请输入数据:\n");
for(int i=0;i<n;i++)
scanf("%f",&x[i]);
do
{printf("请选择置信概率:\n 0. 95%%\n 1. 99%%\n"); //选择置信概率
scanf("%d",&h);
}while(h!=0 && h!=1);
printf("需处理的数据为:\n");
for(i=0;i<n;i++)
printf("%.3f ",x[i]);
printf("\n");
float x0=0;
for(i=0;i<n;i++)
x0=x0+x[i];
x0=x0/n; //求出数学期望
printf("期望为:\n%.3f\n",x0);
float d=0,e=0,f=0,g=0;
for(i=0;i<n;i++)
d=d+(x[i]-x0)*(x[i]-x0);
e=sqrt(d/(n-1)); //标准差
printf("标准差为:\n%.3f\n",e);
int j=0;
printf("莱特准则判断结果为:\n");
for(i=0;i<n;i++)
{
if(abs(x[i]-x0)>3.0*e)
{
printf("第%d个值%.3f为坏值.\n",i,x[i]); //坏值,打印
j++;
} //坏值个数
}
if(j==0)
printf("无坏值.\n");
printf("\n");
float gbl[2][21]={0,0,0,1.15,1.46,1.67,1.82,1.94,2.03,2.11,2.18,2.23,2.29,2.33,2.37,2.41,2.44,2.47,2.50,2.53,2.56,
0,0,0,1.16,1.49,1.75,1.94,2.10,2.22,2.32,2.41,2.48,2.55,2.61,2.66,2.71,2.75,2.79,2.82,2.85,2.88};
float k=0;
k=gbl[h][n];
printf("格布拉斯置信系数g为:\n%.2f\n",k);
int l=0;
printf("格布拉斯准则判断结果为:\n");
for(i=0;i<n;i++)
{
if(abs(x[i]-x0)>k*e)
{
printf("第%d个值%.3f为坏值.\n",i,x[i]); //坏值,打印
l++;
} //坏值个数
}
if(l==0)
printf("无坏值.\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -