/*.编程,统计输出整数100至100000之间所有数字之和为5的整数的总个数。
输出120*/
#include<stdio.h>
int main ()
{
int i,sum=0,counter=0;
for(i=100;i<100000;i++)
{
while(i!=0)
{
sum+=i%10;
i/=10;
}
if(sum==5)
counter++;
}
printf("%d",counter);
return 0;
}
运行完之后就是这样,是我代码的问题吗
死循环了
你while中不要用i变量,i变量是for循环中的变量,这么使用的话,导致每次while循环结束后,i都被更新为0,影响了for循环,导致死循环了。
内循环执行完后,sum每次都需要初始化为0.
代码修改如下:
#include<stdio.h>
int main ()
{
int i,sum=0,counter=0;
for(i=100;i<100000;i++)
{
int num=i;
while(num!=0)
{
sum+=(num%10);
num/=10;
}
if(sum==5)
counter++;
sum=0;
}
printf("%d",counter);
return 0;
}