weixin_63561831 2021-11-12 16:42 采纳率: 87.5%
浏览 612
已结题

题目是输入两个正整数m和n,然后输出这两个数之间所有水仙花数并统计个数和总和。但我输出的个数一直显示为0

题目是输入两个正整数m和n,然后输出这两个数之间所有水仙花数并统计个数和总和。但我输出的个数一直显示为0,不知道怎么修改

img

img

  • 写回答

1条回答 默认 最新

  • 关注

    count是main主函数中的变量。is函数访问不了
    要把count改成全局变量
    或者count++放在main主函数中进行增加1

    你题目的解答代码如下:

    #include<stdio.h>
    
    int main()
    {
        int is(int num);
        int m,n,num,count=0,sum=0;
        scanf("%d%d", &m, &n);
        for (num = m; num < n; num++)
        {
            if (is(num))
            {
                printf("%d\n", num);
                sum += num;
                count++;
            }
        }
        printf("水仙花数共有%d个,和为%d\n", count,sum);
        return 0;
    }
    
    int is(int num)
    {
        int i,j=0,d;
        i=num;
        while (i!=0)
        {
            d=i%10;
            i=i/10;
            j=j+d*d*d;
        }
        if (j==num)
            return 1;
        else
            return 0;
    }
    

    如有帮助,望采纳!谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

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