网站首页 > 文章中心 > 其它

c语言用函数写水仙花

作者:小编 更新时间:2023-10-22 11:59:08 浏览量:355人看过

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

所以可以依次通过模除求得每个位上的值,然后做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;//个位

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");

int?f(int?m)

int?a,b,c;

a=m/100;

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

c=m;

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);

改成

if(is(i)){

就可以了

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

int li(int n)

{ return n*n*n;

int shuixian(int n)

int b,s,g;

b=n/100;

s=n/10;

g=n;

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

return 1;

return 0;

int main()

int i;

scanf("%d",i);

if(shuixian(i))

以上就是土嘎嘎小编为大家整理的c语言用函数写水仙花相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章