c语言 从键盘输入两个数字,求在这两个数字之间有多少个数其各位数字之和为7。输出求得的个数

从键盘输入两个数字,求在这两个数字之间有多少个数其各位数字之和为7。输出求得的个数。
例如10-100之间有7个数字,其各位数字之和为7。(分别为:16,25,34,43,52,61,70)

输入输出举例:

例1:
输入:10 100
输出:7

例2:
输入:100 10
输出:7

例3:
输入:10 9999
输出:119

输入

两个整数(用空格分隔)

输出

一个整数

输入样例

10 100
输出样例

7
提示

1、输入的数字采用长整形;
2、注意输入的两个数字之间用空格分隔;
3、可以是大数在前,也可以是小数在前;

#include <stdio.h>
main()
{
long int a, b, t;
int i, sum;
scanf("%ld %ld", &a, &b);
if (a > b)
{
t = a;
a = b;
b = t;
}
for (i = a; i <= b; i++)
{
do {
sum = 0;
sum = sum + i % 10;
i = i / 10;
} while (i != 0);
if (sum == 7)
printf("%d", i);
}
}

求大佬指正萌新错误 运行了但没结果

修改如下,供参考:

#include <stdio.h>
int main()
{
    long int a, b, t;
    int i, sum, cnt = 0;
    scanf("%ld %ld", &a, &b);
    if (a > b)
    {
        t = a;
        a = b;
        b = t;
    }
    for (i = a; i <= b; i++)
    {
        sum = 0; t = i;
        do {
            sum = sum + t % 10;
            t = t / 10;
        } while (t != 0);
        if (sum == 7)
        {
            printf("%d ", i);
            cnt++;
        }
    }
    printf("\n%d", cnt);
    return 0;
}