C语言 在运行这段代码时,我没有得到任何lambda值,它总是0

mwg9r5ms  于 2023-11-17  发布在  其他
关注(0)|答案(1)|浏览(106)
#include<stdio.h>
#include<math.h>

int main(){
    double f,n,xm,sum=0;    
    const double PI = 3.14159;
    
    printf("Enter the Value of 'f'(CM) : ");
    
    scanf("%lf",&f);
    
    for (double i = 1; i < 8; i++)
    {
       printf("\nEnter the Value of 2Xm(cm) : ");        
       scanf("%lf",&n);        
       xm = (n/2);
    
       printf("%lf",i);
    
       double theta = atan(xm/f);        
       double theta_m = theta * ( 180.0 / PI );        
       double sine_theta = sin(theta);                
       double lambda = (0.0000508*sine_theta)/(i);
    
    
       printf("\nXm : %.2lf",xm);        
       printf("\nTheta : %.4lf",theta_m);        
       printf("\nSine Theta(m) : %.4lf",sine_theta);
       printf("\nlambda : %.4lf",lambda);
       printf("");
       sum+=lambda;        
    }
    
    return 0;   
}

字符串
使用这些值:

  • f = 85
  • xm = 2.2、4.4、6.7或9

对于“f = 2.2”,lambda值应该在6.5532e-07左右,对于6.7 = 6.6717333333333e-07,依此类推。
但每次都显示0。

5jvtdoz2

5jvtdoz21#

只需增加双变量lambda的printf精度。

printf("\nlambda : %.12lf",lambda);

字符串
使用低于6的精度只会显示零,因为在你的例子中lambda <1 e-6。

相关问题