急!!!c语言,求这样一个三位数,该三位数等于其每位数字的阶乘之和。

来源:百度知道 编辑:UC知道 时间:2024/06/24 05:58:17
#include <stdio.h>
main()
{int jiech(int k);
int a,b,c,i;
for(i=100;i<=999;i++)
{a=i/100;
b=i%100/10
c=i%10
if(i=jiech(a)+jiech(b)+jiech(c))
printf("%4d",i);
}
getch();
}
jiech(int k)
{int n=1,m=1;
while(n<=k)
{m=m*n;
n++;
}
return (m);
}
运行后总有些问题,请高手指教,在下不胜感激!

#include <stdio.h>
#include <conio.h> //增加
void main() //加void 消除警告性错误
{int jiech(int k);
int a,b,c,i;
for(i=100;i<=999;i++)
{a=i/100;
b=i%100/10; //此处少;
c=i%10;//此处少;
if(i==jiech(a)+jiech(b)+jiech(c))//此处=改为==
printf("%4d",i);
}
getch();
}
jiech(int k)
{int n=1,m=1;
while(n<=k)
{m=m*n;
n++;
}
return (m);
}
程序逻辑没问题,应该是书写上的一些小错误。

if(i=jiech(a)+jiech(b)+jiech(c))
改成
if(i==jiech(a)+jiech(b)+jiech(c))

结果如下

#include <stdio.h>
main ()
{
int jiech (int k);
int a, b, c, i;
for (i = 100; i <= 999; i++)
{
a = i / 100;
b = i % 100 / 10;
c = i % 10;
if (i == jiech (a) + jiech (b) + jiech (c))
printf ("%4d\n", i);
}
}

jiech (int k)
{
int n = 1, m = 1;