C语言程序输入样例后没有反应,没有输出,是我的算法不对吗?

2025年03月01日 12:41
有2个网友回答
网友(1):

 for(k=m;k<=n;k++)
      {
               while(k!=0)
               {
                        a[i]=k%10;
                        k=k/10;
                        i++;
               }
               total=i;
               for(i=0;i               {
                     if(a[i]==4||a[i]==7)
                   y++;
               else if(a[i]==3||a[i]==6)
                  x++;

               }

      }

这段代码有问题,只要执行一次while(k!=0)之后,k的值就被改变成0了,k++成为1,可以说是一直满足k<=n,所以一直在循环,你可以在for()循环里面加一个临时变量int temp=k,就可以了

网友(2):

这一步错了:
while(k!=0)
{
a[i]=k%10;
k=k/10;
i++;
}
别忘了k在m,n之间循环,不能在这里修改的
设t=k,对t操作就行了