今天在写实验报告处理数据来着,然后用计算器一个一个码数字呢,突然就想自己码一个逐差法小程序。
逐差法
逐差法是为提高实验数据的利用率,减小了随机误差的影响,另外也可减小实验中仪器误差分量,因此是一种常用的数据处理方法。
逐差法是针对自变量等量变化,因变量也做等量变化时,所测得有序数据等间隔相减后取其逐差平均值得到的结果。其优点是充分利用了测量数据,具有对数据取平均的效果,可及时发现差错或数据的分布规律,及时纠正或及时总结数据规律。它也是物理实验中处理数据常用的一种方法。
代码如下:
//这是一个逐差法处理数据的程序
#include <stdio.h>
int main() {
float m[100];
float n[100];
int i, k = 0,p,y=0;
float Difference,sum=0,output,a=1,b=1,T;
printf("这是一个逐差法处理数据的程序\n");
//输入逐差数据组数k
printf("请输入你的逐差数据组数:");
if (scanf_s("%d", &k, sizeof(k)) != 1) {
printf("输入失败\n");
return 1;
}
//输入数据的乘方次数y
printf("请输入你的数据的乘方次数:");
if (scanf_s("%d", &y, sizeof(y)) != 1) {
printf("输入失败\n");
return 1;
}
//输入周期数据T
printf("请输入你的周期数据T:");
if (scanf_s("%d", &T, sizeof(T)) != 1) {
printf("输入失败\n");
return 1;
}
//输入m组数据
for (i = 0; i < k; i++) {
printf("请输入你的第%d个m组数据:", i + 1);
scanf_s("%f", &m[i]);
}
//输入n组数据
for (i = 0; i < k; i++) {
printf("请输入你的第%d个n组数据:", i + 1);
scanf_s("%f", &n[i]);
}
for (i = 0; i < k; i++) {
for (p = 0; p < y; p++) {
a *= m[i];
b *= n[i];
}
Difference = (a - b);
if (Difference < 0) {
Difference = 0 - Difference;
}
a = b = 0;
sum += Difference;
}
output = sum /( k*T*T);
printf("逐差法结果是%f", sum);
}
这样如果我们输入逐差数据组数、逐差数据、数据是否需要几次乘方处理、周期,最后即可得出逐差处理结果。
新人小白,如果有什么更好的建议或者想法可以评论区互相交流,谢谢谢谢!