求看看为什么输出为空

img

img

img

两个问题:
1,第6行 ,scanf后面的l,r要加&
2,第12行c=c/10 ,当i =3,4,5等个位不是2的数字时,while就成死循环了,这句要放在if 判断外面。

代码修改如下:

#include<cstdio>

using namespace std;

int main()
{
    int l,r,a,b,c;
    b = 0;
    scanf("%d %d",&l,&r);
    for(int i=l;i<=r;i++)
    {
        c = i;
        while(c!=0)
        {
            if(c%10 == 2)
            {
                b++;            
            }
            c=c/10;            
        }
    }
    printf("%d",b);
    return 0;
}

做以下修改
scanf("%d %d",&l,&r);
望采纳

scanf函数写错了,它的一般形式是:scanf(“格式控制字符串”, 地址表列);
例如:&a、&b分别表示变量a和变量b的地址。
因此你要改成scanf("%d %d",&l,&r);