请问哪里错了或者不规范呀?

题目描述
请统计某个给定范围[L, R]的所有整数中,数字 2出现的次数。
比如给定范围[2, 22],数字2 在数 2中出现了 1 次,在数12 中出现 1 次,在数 20中出现 1次,在数 21 中出现 1次,在数 22 中出现 2次,所以数字2 在该范围内一共出现了 6次。
输入
2个正整数 LL和 R,之间用一个空格隔开。
输出
数字 2出现的次数。

#include<cstdio>
using namespace std;

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

哪里错了呀?提交老是错误。

  1. 它可没说只有两位数或一位数,要用while循环。
  2. 如果只有两位数或一位数,也因该把第11行的n=i/10;改为i/=10;或i=i/10。