水仙花c语言函数题,c语言水仙花数函数

求C语言用调用函数求三位数的水仙花数,尽量简单易懂,最好有解释,我主要是想要理解怎么使用调用函数

本程序已在Visual Studio 2008调试通过

成都创新互联自2013年创立以来,是专业互联网技术服务公司,拥有项目成都做网站、网站制作、成都外贸网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元明水做网站,已为上家服务,为明水各地企业和个人服务,联系电话:028-86922220

#include "stdio.h"

int fun(int a[])//子函数中查找100~999之间的水仙花数

{int m,x,y,z,i=0;

for(m=100;m999;m++)

{x=m%10;//分解出个位数

y=(m-x)/10%10;//分解出十位数

z=m/100;//分解出百位数

if(x*x*x+y*y*y+z*z*z==m)//判断每位数的立方的和是否与原数相等

{a[i]=m;i++;}}//若相等则存入数组

return(i);//返回数组中水仙花数的个数以方便在主函数中输出

}

void main()

{int fun(int a[]);//子函数先定义后使用

int a[20],i,k;

k=fun(a);//调用子函数,注意本题中传递的是整个数组,所以子函数和主函数共用一个数组,系统分配的是同一片区域,双向传递

for(i=0;ik;i++)//循环输出

printf("%d=%d^3+%d^3+%d^3\n",a[i],a[i]/100,a[i]/10%10,a[i]%10);

}//输出结果为 153=1^3+5^3+3^3 370=3^3+7^3+0^3 371=3^3+7^3+1^3 407=4^3+0^3+7^3

你看一下如果还有什么问题再问我

c语言编写求水仙数,从100到999之间的。用fun函数

源程序如下:

#includestdio.h

int fun(int n)

{ int i,j,k,m;

m=n;

k=0;

for(i=1;i4;i++)

{ j=m%10;

m=(m-j)/10;

k=k+j*j*j;

}

if(k==n)

return 1;

else

return(0);

}

void main()

{ int i;

for(i=100;i1000;i++)

if(fun(i)==1)

printf("%d is ok!\n" ,i);

}

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

水仙花数的c语言编程。

所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 1^3 + 5^3+ 3^3 。

下面是完整的C语言编程代码:

运行结果:

result is:153  370  371  407

扩展资料

常见水仙花数

水仙花数又称阿姆斯特朗数。

1、三位的水仙花数共有4个:153,370,371,407;

2、四位的四叶玫瑰数共有3个:1634,8208,9474;

3、五位的五角星数共有3个:54748,92727,93084;

4、六位的六合数只有1个:548834;

5、七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;

6、八位的八仙数共有3个:24678050,24678051,88593477

参考资料:百度百科:水仙花数

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

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

所以可以依次通过模除求得每个位上的值,然后做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语言求水仙花数问题

for(int n=100;n1000;n++){ 后面加上一句 result=0.0;

if(result==n) printf("%d是水仙花数\n",n); 这句应该在第二个for循环外

C语言 水仙花数 编程题

你没有循环啊.

if (t=n)

{

for(; t=n; t++)

{

p=judge(t);

if(p==1)

{

printf("%d", t);

printf(" ");

flag=flag+1;

}

}

}

else

{

if(flag==0) printf("no\n");

else printf("\n");

}


当前文章:水仙花c语言函数题,c语言水仙花数函数
URL分享:http://cdiso.cn/article/hcjpjp.html

其他资讯