chain745 2021-11-04 17:00 采纳率: 71.4%
浏览 104
已结题

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);
}
}

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

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-11-04 17:11
    关注

    修改如下,供参考:

    #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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月12日
  • 已采纳回答 11月4日
  • 创建了问题 11月4日