密立根油滴实验的数据处理

#include<stdio.h>
#include<math.h>
int i,j,k;
float sum_1,sum_2,average,std_dev,relative_error;
#define k i*3+j
struct
{
    int u,n;
    float t,q,e;
}a[9];
void main()
{
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            printf("请输入第%d个油滴第%d组数据(电压 时间):",i+1,j+1);
            scanf("%d %f",&a[k].u,&a[k].t);
        }
    printf("/n/n油滴  次数  U/V   t/s   q/(e-19C)   n/个  e/(e-19C)");
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            a[k].q=143000/(a[k].u*a[k].t*pow(1+0.02*sqrt(a[k].t),1.5));
            a[k].n=(int)(a[k].q/1.6021892+0.5);
            a[k].e=a[k].q/a[k].n;
            printf("/n%-6d%-6d%-6d%-6.1f%-12.7f%-6d%-6.7f",i+1,j+1,
            a[k].u,a[k].t,a[k].q,a[k].n,a[k].e);
            sum_1+=a[k].e;
        }                                                                         
    average=sum_1/9;
    for(i=0;i<9;i++)
        sum_2+=pow(a[i].e-average,2);
    std_dev=sqrt(sum_2/72);
    relative_error=std_dev/average;
    printf("/n平均值=%f/n标准偏差=%f/n相对误差=%f/n",average,std_dev,
    relative_error);
    getchar();
}

没有更多推荐了,返回首页