2014-02-18 50 views
0

为了评估l1,l2,l3,l4直到k < = g,值K被设置为依赖于i而增加。我究竟做错了什么????While循环,值k不会增加

#include <stdio.h> 
#include <math.h> 

int main(void) { 

    float c=0, h=0, x=0, i=0; 

    printf("Proj. #2 - Juan Perez\n"); 
    printf("Power of lamps (in watts)? "); 
    scanf("%f" , &c); 

    printf("Height of lamp (in meters)? "); 
    scanf("%f" , &h); 

    printf("Distance apart? (in meters)? "); 
    scanf("%f" , &x); 

    printf("Interval? (in meters)? "); 
    scanf("%f" , &i); 


    printf("Power: %f\n", c); 
    printf("Height: %f\n", h); 
    printf("Distance apart: %f\n", x); 
    printf("Interval: %f\n", i); 

    float k=75, d=0, e=x, f=2*x, g=3*x; 
    float l1=((c*h)/(powf((h*h)+((k-d)*(k-d)), 1.5))); 
    float l2=((c*h)/(powf((h*h)+((k-e)*(k-e)), 1.5))); 
    float l3=((c*h)/(powf((h*h)+((k-f)*(k-f)), 1.5))); 
    float l4=((c*h)/(powf((h*h)+((k-g)*(k-g)), 1.5))); 
    float j=l1+l2+l3+l4; 

    while (k<=g){ 
     printf("%f\n", j); 
     k+=i; 
    } 

} 
+0

你说“直到k <= g”,但你的代码有“while k <= g”。我假设你的代码在这里是正确的,但你应该保持一致。 –

+0

显示您的输入。 – BLUEPIXY

回答

2

由于k = 75,和g = 0,因为条件是不正确的,该循环将不会执行,并打印语句将无法正常工作,并且k的增量将永远不会发生任何。

变化

while (k<=g){ 

while (k>=g){ 

要观看它飞出控制(在无限循环运行)的,由于k永远是大于g。

+0

FWIW,'g'在循环前设置为'3 * x',但除非'x'大于25,否则相同的原则适用。 –

+0

g是x输入的3倍。我打算从0开始改变k。 – user3321419