C语言四叶玫瑰数求解

img


#include
#pragma warning (disable:4996)
int fun(int n, int result[])
{
    int a, b, c, d, f, s;
    int i = 0;
    for (a = 1000; a < 10000; a++)
    {
        b = ((a / 1000) % 10);
        c = ((a / 100) % 10);
        d = ((a / 10) % 10);
        f = (a % 10);
        s = b * b * b * b + c * c * c * c + d * d * d * d + f * f * f * f;
        if (a == s)
            result[i++] = s;
    }
    return s;
}
main( )
{
    int result[10], n, i;
    void NONO(int result[], int n);
    n = fun(9999, result);
    for(i=0; i"%d\n", result[i]);
    NONO(result, n);
}

void NONO(int result[], int n)
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
    FILE *fp ;
    int i;

    fp = fopen("out.dat","w") ;
    fprintf(fp, "%d\n", n);
    for(i=0; i"%d\n", result[i]);
    fclose(fp);
}

这个fun函数哪里有问题

fun函数中,变量i才是计数的,变量s是用于计算判断的,函数返回值应该是i而不是s。

return s改为return i