编写一个函数f(int x) ,该函数的功能是实现x是一个四位的水仙花数(该数的各个数位上的数字的四次方和等于该数);然后主函数调用该函数输出所有的四位水仙花数。
12行i前面加上类型int,你的i没有定义啊,就拿来用了。
for(int i=1000;i<10000;i++)
你的long函数里i没有定义类型,这是一个写好的代码:
#include "stdio.h"
void TestFunc();
int fun(int n)
{
int bw,sw,gw;
bw=n/100;sw=(n-bw*100)/10;gw=n%10;
if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1;
else return 0;
}
void main()
{ int n,flag;
scanf("%d",&n);
flag=fun(n);
if(flag)
printf("%d 是水仙花数\n",n);
else
printf("%d 不是水仙花数\n",n);
TestFunc();
}
主函数里的printf去掉那个long, f函数里,变量i定义一下
修改了一下,如下:
#include <stdio.h>
#include <math.h>
long f(int x);
int main(void){
int i = 1000;
printf("%ld",f(i));
return 0;
}
long f(int x){
int i,num;
for(i=x;i<10000;i++){
num = pow(i/1000,4)+pow(i/100%10,4)+pow(i/10%10,4)+pow(i%10,4);
if(i==num){
return i;
}
}
}