Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        4年前关闭。
                                                                                            
                
        
这是我的代码。

#include<stdio.h>
main()
{
    float H,U,D,F;
    int x=0,i=0;
    scanf("%f %f %f %f",&H,&U,&D,&F);
    while(H>x){
        x=x+U-D;
        U=U-(F/100*U);
        i++;
        printf("%d\t%d\t%2lf\t%2lf\t%2lf\n",i,x,U,D,F);
    }
    printf("%d",i);
}


它陷入了无限循环。这是什么问题

最佳答案

仅在某些情况下,这将属于无限情况。
因为四舍五入,您应该将x设为float,这样您将获得适当的答案。
在您的情况下,首先将计算U-D,让我们看一下
U-D = 0.65235
然后..
它将转换为0并添加到x
所以X会保持不变。.因此您的循环将进入无限状态。
我在下面发布了一张照片,可以帮助您了解原因。

关于c - C语言中的无限循环,代码块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35001011/

10-11 22:05
查看更多