两个问题:
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);