西柚西柚 发表于 2020-11-7 00:10:28

求区间含两个7的整数个数

输入有多个用例,第一行为用例个数n,接下来每个用例占一行,即要求的区间a,b。
对每一个用例,用一行输出对应区间中含两个7的整数个数,如果没有,输出0。

#include <stdio.h>

int main()
{
      int a,b,c,d,e,f,x,y;
      d=0;
      x=0;
      y=0;
      scanf("%d",&e);
      for(f=1;f<=e;e++)
      {
              scanf("%d %d",&a,&b);
      for(c=a;c<=b;c++)
      {
              while(c!=0)
              {
                      x=c%10;
                      c/=10;
                      if(x==7)
                      y++;
                     
                        }
                        if(y==2)
                        {
                                d++;
                        }
                }
                if(d>0)
                        printf("%d\n",d);
                        else
                        printf("0\n");
                }
      
      return 0;
}

巴巴鲁 发表于 2020-11-7 07:36:49

你这个内层for循环只能执行一次啊,当执行完while语句,c变成0了
再用一个变量来接收c

西柚西柚 发表于 2020-11-7 08:31:41

巴巴鲁 发表于 2020-11-7 07:36
你这个内层for循环只能执行一次啊,当执行完while语句,c变成0了
再用一个变量来接收c

没明白,能详细一点吗?

巴巴鲁 发表于 2020-11-7 12:49:04

西柚西柚 发表于 2020-11-7 08:31
没明白,能详细一点吗?

执行完第一次内层for循环,c的终止条件是<=b
当执行完while,c变成0了,也就是while终止的条件
第二次进入内层for,不满足条件直接退出,开始执行外层循环
页: [1]
查看完整版本: 求区间含两个7的整数个数