|
发表于 2022-12-3 22:04:59
|
显示全部楼层
鸡蛋里挑骨头。
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <math.h>
int main(){
double x,avg;
int i;
x=0;
for(i=0;i<360;i++){
x+=pow(sin(M_PI*i/360.0),2.0);
}
x=sqrt(x);
printf("\r\n(AC+DC)rms=%lf",x);
//这个单独一个循环,先做掉。另外3个循环,合并成一个,用三个变量x1 x2 x3,一把头做掉。4个循环变2个,时间可节省不少。
简单的乘方,直接写2次,不调用math库,又可节省不少时间。
avg=0;
for(i=0;i<360;i++){
avg+=sin(M_PI*i/360.0);
}
avg/=720;
printf("\r\n(AC)avg volt=%lf",avg);
x=0;
for(i=0;i<360;i++){
x+=pow(sin(M_PI*i/360.0)-avg,2.0);
}
for(i=0;i<360;i++){
x+=pow(avg,2.0);
}
x=sqrt(x);
printf("\r\n(AC)rms=%lf",x);
}
开玩笑勿怪。
不似有些人,自己C语言学不好,就鸡蛋里挑骨头,说C不好。
死活不认自己傻。承认自己是笨蛋,难吗? |
|