c语言水仙花主函数调用 c语言水仙花数函数专题

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

int li(int n)

我们提供的服务有:成都网站制作、网站建设、微信公众号开发、网站优化、网站认证、柳林ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的柳林网站制作公司

{ 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语言编程调用函数求水仙花数

水仙花数是指一个 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语言编写判断水仙花数的函数,从主函数输入正整数N,在主函数中调用判断水仙花数的函数,找出n以内的数。

在这里只写出N为999以内的整数,如果楼主需要N为更大的整数的话,稍微改动一下调用函数就好啦!希望对楼主有帮助。

#include "stdio.h"

int f(int x)

{

if(x==(x/100)*(x/100)*(x/100)+(x%100/10)*(x%100/10)*(X%100/10)+(x%10)*(x%10)*(x%10))

printf("%d",x);

}

main()

{

int a;

scanf("%d",a);

f(a);

}

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

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

#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语言水仙花主函数调用 c语言水仙花数函数专题
标题路径:http://myzitong.com/article/ddoeisg.html