⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 电子测量.cpp

📁 自己编写的关于电子测量的莱特准则和格拉布斯准则的算法
💻 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 + -