Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 循环有什么问题_C_Performance_Optimization_While Loop_Infinite Loop - Fatal编程技术网

C 循环有什么问题

C 循环有什么问题,c,performance,optimization,while-loop,infinite-loop,C,Performance,Optimization,While Loop,Infinite Loop,我正在解决一个问题,将介于一个范围(例如,在'm'和'n'之间,其中m

我正在解决一个问题,将介于一个范围(例如,在'm'和'n'之间,其中m
 #include <stdio.h>

 int main()
 {
 int t=0;
 long int m=0,n=0,num=0,sum=0,lsum=0,i=0;
 scanf("%d",&t);
 while(t--){
    scanf("%ld%ld",&m,&n);
    i=m;
    while(i<=n){
       while(i!=0){
          num=i%10;
          i/=10;
       }
       lsum=lsum+(sum%10);
       i++;
    }
}
printf("\n%ld",lsum);
return 0;
}
#包括
int main()
{
int t=0;
长整数m=0,n=0,num=0,sum=0,lsum=0,i=0;
scanf(“%d”、&t);
而(t--){
scanf(“%ld%ld”,&m,&n);
i=m;

当(i对
i
进行除法时:
i/=10
。这意味着在循环结束时,
i
始终设置回
1
。应使用临时变量进行除法。 像这样:

    while(i<=n){
       int temp = i;
       while(temp !=0){
          num=temp %10;
          temp /=10;
       }
       lsum=lsum+(sum%10);
       i++;
    }

while(i代码中有一个无限循环:

 while(i<=n)
 {       
     while(i!=0)
   {        
      num=i%10;        
      i/=10; 
   }       
   lsum=lsum+(sum%10);       
   i++;    
 }

while(我是否尝试过在调试器中运行它,逐行检查代码?您可以很容易地检查条件和变量,以找出问题所在。使用
for
循环,最好使用
for(i=0;iit现在不是无限的)形式。谢谢。