不知道错误在哪里啊啊

编写一个函数f(int x) ,该函数的功能是实现x是一个四位的水仙花数(该数的各个数位上的数字的四次方和等于该数);然后主函数调用该函数输出所有的四位水仙花数。

img

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