【发布时间】:2012-07-28 01:50:28
【问题描述】:
我正在解决添加位于范围之间的数字的最后一位的问题(例如,在“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;
}
这里 t=测试用例数。 m 和 n 是范围。我不知道为什么它在终端中无限运行。我正在使用 gcc(4.3.2) 编译器。如何优化它以提高速度,或者是 while 条件永远不会终止的情况,但为什么?
【问题讨论】:
-
您是否尝试过在调试器中运行它,逐行执行代码?您可以轻松检查条件和变量,找出问题所在。
-
使用
for循环,最好是for (i=0; i<SOMETHING; i++)形式。这种形式真的很难出错。
标签: c performance optimization while-loop infinite-loop