给大学物理实验一点小小的震撼吧

 大学物理实验中经常要进行数据处理 , 而处理的过程又如此的相似

因此直接写出一个计算大学物理数据处理的代码 , 要方便得很多

同时也欢迎各位提出改进意见

#include<stdio.h>
#include<math.h>

//Designed by JiangTang

//count这个函数使用来取小数位数并且自动四舍六入五取整的
//参数:raw原始数据 , wei需要取的位数
//返回值:已经按照输入的要求而进行取小数位的数据

double count(double raw,int wei);

int main()
{
	int n,i;
	float D,DA,DA_Front,DB,DB_Front,RLT_UN,UN,Error_instrument;
	float Sum_Minor=0,Sum_Raw=0,Sum_Relative=0;
	float Data[n];
	
	printf("please enter the number of data");//数据个数
	scanf("%d",&n);
	
	printf("Please Enter the Error_instrument");//仪器误差
	scanf("%f",&Error_instrument);
	
	for(i=0;i<n;i++)
	{
		scanf("%f",&Data[i]);
	}
	
	for(i=0;i<n;i++)
	{
		Sum_Raw+=Data[i];//原始数据之和
	}
	
	printf("D的算数平均值为");
	D = Sum_Raw/n;   //得到原始数据累加平均值
	printf("%f\n",D);
	
	for(int i=0;i<n;i++)
	{
		float Temp = Data[i]-D;//中间变量
		float zhongjian=pow(Temp,2);
		printf("%f\n",zhongjian);
		Sum_Minor+=zhongjian;//减去平均值之后的数组的平均值
	}
	
	printf("%f\n",Sum_Minor);
	
	DA_Front = Sum_Minor/(n-1);
	printf("%f\n",DA_Front);
	
	printf("A类不确定度为");
	DA = sqrt(DA_Front);
	printf("%f\n",DA);
	
	printf("B类不确定度为");
	DB_Front = pow(Error_instrument,2)/3;
	DB = sqrt(DB_Front);
	printf("%f\n",DB);
	
	Sum_Relative = pow(DA,2) + pow(DB,2);
	//printf("%f",Sum_Relative);
	
	printf("不确定度为");
	UN = sqrt(Sum_Relative);
	printf("%f\n",UN);
	
	printf("相对不确定度为");
	RLT_UN = UN/D;
	printf("%f\n",RLT_UN);
	
	return 0;
}

//四舍六入五取整
double count(double raw,int wei)//保存的位数
{
	double copy=raw;
    double point;
	int front,back;
	copy *= pow(10,wei+1);
    raw *=pow(10,wei+1);
	copy=(int)copy;//得到整数部分
    
    printf("raw=%fn",raw);
    point=raw-copy;
    raw-=point;
    printf("raw=%f\n",raw);
    
    //raw/=pow(10,wei+1);
    //printf("raw=%f",raw);
    front=(int)raw/10%10;
    back=(int)raw%10;
    
	printf("front=%d,back=%d\n",front,back);
    
	if(back>=6)
	{
		raw+=10;
	}
	else if(back ==5)
	{
		if(front == 1||front == 3||front == 5||front == 7||front == 9)
		{
			raw += 10;
		}
	}
	else
	{
		raw = raw;
	}
    for (int k=0;k<wei+1;k++)
    {
		raw/=10.0;	
	}
	
    printf("%lf",raw);
	return raw;

posted @ 2024-10-23 12:14  Jiang-Tang  阅读(8)  评论(0)    收藏  举报  来源