输入2个正整数m和n,输出m到n中所有水仙花数?用C语言怎么编

输入2个正整数m和n,输出m到n中所有水仙花数?用C语言怎么编,第1张

1水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)

#include <stdioh>
bool IsDaffodil(int num)
{
    if (num < 100)
        return false;
    int sum = 0, n = num, m;
    while (n)
    {
        m = n % 10;
        sum += mmm;
        n /= 10;
    }
    return sum == num;
}
int main()
{
    int n, m;
    printf("input n and m : ");
    scanf("%d %d", &n, &m);
    printf("Daffodil n ~ m has : ");
    for (int i = n; i <= m; i++)
        if (IsDaffodil(i))
            printf("%d ", i);
    return 0;
}

这里的>>应该是位运算吧,print打印结果应该不变,如果count定义了一个值的话,经过count>>a,运算后,就是count的二进制末尾的小数点右移a位,也就是给count缩小了2^32倍。当中a的值应该不变,所以,打印的还是2

简单来说,你的两种方法分别对应变量的两种作用域:
第一种:局部变量,count只能在main函数内部使用,不允许在main函数的大括号外面使用;
第二种:全局变量,建议你写成:const int count=0;
这个时候,count可以作用在你的整个c文件中。
如果是在另一个文件中使用,可以加入声明extern int count。

他们的区别在于,第一种方法中,count是个局部变量,只能在main函数中使用,第二种方法里count是个全局变量,比如下面的两段程序
int
count=0;
int
main()
{}
int
a()
{}
-------------
int
main()
{
int
count=0;
}
int
a()
{}
--------------
第一段里函数a里可以使用count
第二段里的函数a则无法使用count

count不是一个C关键字,也不是一个C标准函数,所以课本里没有它。你在网上看到的要么是变量名,要么是自定义函数名,意思肯定是统计计数之类的。printf是一个C标准函数,输出字符串。

MAXCOUNT是4
于是for循环,count从1到4 当count为5时退出。
fun执行4次。
i没有显式初始化,作为静态变量,默认初始化为0,每次调用加2
于是会打印
2468

++count是在用count之前使它的值加1,因为你前面已经调用过一次count,所以第二次要先加1才调用,这道题求的是a+aa+aaa,到最后一位有n个a,也只需循环n次,如果用count++,便会多循环一次

count++是指先进行运算,然后值加1,如count=5;int
i=count++
//此时,i=5i=count;
//此时
i=6而++count则是先使值加1,然后运算,如count=5;int
i=++count;
//此时i=6;i=count;
//此时i=6


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10276952.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存