编写一个判断整数是否为水仙花数的函数,并通过调用该函数打印输出所有水仙花数?

2024-12-30 18:52:00
推荐回答(2个)
回答1:

#include<stdio.h>

#include<math.h>

int narcissistic(int number);

void PrintN(int m,int n);

int main()

{

int m,n;

scanf("%d%d",&m,&n);

if(narcissistic(m))printf("%d is a narcissistic number\n",m);

PrintN(m,n);

if(narcissistic(n))printf("%d is a narcissistic number\n",n);

return 0;

}

int narcissistic(int number){

int i,n=0,sum=0,cnt=0;

n=number;

while(n){

cnt++;

n/=10;

}

n=number;

while(n){

i=n%10;

sum+=(int)pow(i,cnt);

n/=10;

}

if(sum==number)

return 1;

else

return 0;

}

void PrintN(int m,int n){

int i;

for(i=m+1;i<n;i++)

if(narcissistic(i))

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

}

扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md-->,m域宽,打印出来以后,在控制台上,显示m位;

如果要打印的数的位数如果超过我们设定m则原样输出;

如果要打印的数的位数如果小于设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

参考资料:

百度百科——水仙花数

回答2:

#include

int isshuixian(int n)

{int a,b,c;

 a=n/100;

 b=n/10%10;

 c=n%10;

 return a*a*a+b*b*b+c*c*c==n;

}

int main()

{ int i;

  for(i=100; i<1000; i++)

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

  return 0;

}