函数返回值有问题,输出有问题
if(is(i))printf("%d\n",i);
return?1;?return?0
#include "stdio.h"
{int m,x,y,z,i=0;
{x=m;//分解出个位数
y=(m-x)/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[]);//子函数先定义后使用
k=fun(a);//调用子函数,注意本题中传递的是整个数组,所以子函数和主函数共用一个数组,系统分配的是同一片区域,双向传递
for(i=0;ik;i++)//循环输出
你看一下如果还有什么问题再问我
问题在下面这个语句中:
if(sum==number1)
由于number1在循环中已经被更改了,最后的值为原数的百位数,所以不可能再和sum相等.
这里应该为:if(sum==number)
#includestdio.h
void?main()
{
int?i,a,b,c;??
a=i/100;??
b=(i-a*100)/10;?
c=i-a*100-b*10;??
if(i==a*a*a+b*b*b+c*c*c)?
printf("%d",i);?
printf('\t');
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))
printf("%d\n",i);
#includelt;stdio.hgt;
#includelt;math.hgt;
int narcissistic(int number);
void PrintN(int m,int n);
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);
int narcissistic(int number){
int i,n=0,sum=0,cnt=0;
n=number;
while(n){
cnt++;
n/=10;
i=n;
sum+=(int)pow(i,cnt);
if(sum==number)
else
void PrintN(int m,int n){
for(i=m+1;ilt;n;i++)
if(narcissistic(i))
扩展资料:
printf函数使用注意事项
①.、域宽
%d:按整型数据的实际长度输出.
如果想输出指定宽度可以指定域宽,%md--gt,m域宽,打印出来以后,在控制台上,显示m位;
如果要打印的数的位数如果超过我们设定m则原样输出;
如果要打印的数的位数如果小于设定的位数,则补空白,具体如下:
如果m为正数,则左对齐(左侧补空白);
如果m为负数,则右对齐(右侧补空白).
如果想输出字符"%",则应该在"格式控制"字符串中用连续两个%表示.
参考资料:
百度百科——水仙花数
以上就是土嘎嘎小编为大家整理的c语言水仙花数函数调用相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!