如何把算出的结果存入数组并回到主函数

img

img


调用函数那不知道是不是这么写的,还有不知道怎么把结果输入数组,并带回主函数
帮我找找错吧,结果运行不对,要是能解释一下更好了

img

img

img

img


#include <stdio.h>

int flag(int x0, int x1, int b[])
{
    if (x0 > x1)
    {
        b = NULL;
        return 0;
    }
    int j = 0;
    for (int i = x0; i <= x1; i++)
    {
        if (i % 3 == 0)
            b[j++] = i;
    }
    return j;
}

int main(int argc, char *argv[])
{
    int x0, x1, n, m;
    do
    {
        scanf("%d%d", &x0, &x1);
    } while (x0 > x1);

    n = x1 - x0 + 1;
    int b[n];

    m = flag(x0, x1, b);

    printf("%d到%d之间能被3整除的数共%d个:\n", x0, x1, m);
    for (int i = 0; i < m; i++)
    {
        printf("%d ", b[i]);
        if (i + 1 % 10 == 0)
            puts("");
    }

    return 0;
}

img


变量 d 是个int 数组 不是int型,定义错了,flag函数没有return ,主函数c是接收不到正确值的。