c语言用函数写水仙花,C语言,水仙花

c语言编程调用函数求水仙花数

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

成都创新互联公司专注于中大型企业的网站建设、网站设计和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户成百上千,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注成都品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!

所以可以依次通过模除求得每个位上的值,然后做n次幂后相加,再判断是否与本身相等,从而得到是否为水仙花数的结论。

以求所有三位数水仙花数为例,代码如下,其它相似。

#includestdio.h

#includestdlib.h

#includestdbool.h

int cube(const int n){//计算立方。如果是四位则是四次方,以此类推。

return n*n*n;

}

int isNarcissistic(const int n){//计算是否为水仙花数。

int hundreds=n/100;//百位

int tens=n/10-hundreds*10;//十位

int ones=n%10;//个位

return cube(hundreds)+cube(tens)+cube(ones)==n;//如果相等,则为水仙花数。

}

int main(void){

int i;

for(i=100;i1000;++i){//对所有三位数判断。

if(isNarcissistic(i))//如果是则输出。

printf("%d\n",i);

}

return 0;

}

C程序水仙花数用函数写

你需要对返回的数加一个判断,你的函数中,如果相等你有返回值,如果不相等你没有返回值,但是你的主函数中还是对这个没有返回的值进行了输出

#include stdio.h

int main()

{

int f(int m);

int n;

printf ("result is: ");

for (n = 100; n  1000; n++)

{

if (f(n)0)/////////////////////////

  printf ("%d ", f(n) );

}

printf ("\n");

return 0;

}

int f(int m)

{

int a,b,c;

a=m/100;

b=(m-a*100)/10;

c=m%10;

if(m==a*a*a+b*b*b+c*c*c)

return (m);

else return -1;////////////////////////

}

c程 用函数编写水仙花数程序

你这里没有用到判断。所以它会把每个数都输出。

把is函数设成boolean类型的,如果是水仙花数就return true,如果不是就return false

就是if(number==i*i*i+m*m*m+n*n*n){ return true;)else return false;

...

这是你原来is函数里的一部分,按照上面那样改。

if(number==i*i*i+m*m*m+n*n*n){

return number;

}

下面这里是你的main函数的部分,

for(i=m;i=n;i++){

m=is(i);

printf("%d\n",m);

改成

for(i=m;i=n;i++){

if(is(i)){

printf("%d\n",i);

}

就可以了

c语言调用函数求水仙花数

int li(int n)

{ return n*n*n;

}

int shuixian(int n)

{

int b,s,g;

b=n/100;

s=n/10%10;

g=n%10;

if((li(b)+li(s)+li(g))==n)

return 1;

return 0;

}

int main()

{

int i;

scanf("%d",i);

if(shuixian(i))

printf("%d\n",i);

return 0;

}

分享名称:c语言用函数写水仙花,C语言,水仙花
本文URL:https://www.cdcxhl.com/article48/hchiep.html

成都网站建设公司_创新互联,为您提供Google做网站全网营销推广虚拟主机品牌网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设