C的不会难!~

来源:百度知道 编辑:UC知道 时间:2024/05/30 21:21:04
假如一个正弦波有效值为220,在一个周期里采样M个点;按照离散有效值运算方法:有效值u=sqrt((x1*x1+x2*x2+……)/M),下面的程序结果应该至少是个接近220的答案,可为什么程序结果不是呢?问题出在哪里?
#include"stdio.h"
#include"math.h"
#define pie 3.14159
main()
{float x,y,sum=0;
int i,M=50; //采样50个点
x=2*pie/M;
for(i=1;i<51;i++)
{sum+=440*sin(i*x)*sin(i*M);} //正弦波峰值220*根号2
y=sum/M;
printf("%f",y);}
不好意思 原来程序对的饿 自己写错了 呵呵 !~

#include"stdio.h"
#include"math.h"
#define pie 3.14159
main()
{float x,y,sum=0;
int i,M=50; //采样50个点
x=2*pie/M;
for(i=1;i<51;i++)
{sum+=440*sin(i*x)*sin(i*x);} //正弦波峰值220*根号2
y=sum/M;
printf("%f",y);}

#include"stdio.h"
#include"math.h"
#define pie 3.14159
void main()
{float x,y,sum=0.0;
int i,M=50; //采样50个点
x=2.0*pie/float(M);
for(i=1;i<51;i++)
{sum+=440.0*sin(i*x)*sin(i*float(M));} //正弦波峰值220*根号2
y=sum/float(M);
printf("%f",y);}