While循环,值k不会增加
问题描述:
为了评估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;
}
}
答
由于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
你说“直到k
显示您的输入。 – BLUEPIXY