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则无法使用countcount不是一个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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)