木落风高天宇开gy 2021-12-11 16:12 采纳率: 100%
浏览 84
已结题

devc++ 运行完后什么都没有


/*.编程,统计输出整数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;
}

img

运行完之后就是这样,是我代码的问题吗

  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2021-12-11 16:17
    关注

    死循环了
    你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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月19日
  • 已采纳回答 12月11日
  • 创建了问题 12月11日