如何在此代码中调用函数?我正在使用 visual studio 软件。不断收到 array1 和 2 未定义的错误

How do I call functions within this code? Im using the visual studio software. keep getting errors that array1 and 2 are undefined

enter image description here

抱歉,我是编码新手。我已经在这里搜索了可能的解决方案,但没有用。我也对为什么有些代码与其他代码相比显得灰色感到困惑。 https://1drv.ms/w/s!Ag8vVFKVPyOg6HeYLehGjQKdvl_3?e=QHY6t9

#include <stdio.h>
// initialised variables
int i = 0;
int count = 0;
void displayfunction(void);

int month = 0;
void highervalues(float array1[12], float array2[12]);

void highervalues(float array1[12], float array2[12]) {
    for (i = 12; i > 0; i--) {
        if (array2[i] > array1[i]) {
            count = count + 1;

        
        }
    }
}

//Reading values for array1 and array2
void displayfunction(void) {
    highervalues(array1[12] , array2[12]);
    for (i = 0; i < 12; i++)
    {
        
        month = month + 1; // month increases by 1 after each input
        printf_s("enter values for year 1 month %d", month);
        scanf_s("%f", &array1[i]);
    }
    for (month = 12; month > 0; month--) {
    }
    for (i = 0; i < 12; i++) {
        month = month + 1;
        printf_s("enter values for year 2 month %d", month);
        scanf_s("%f", &array2[i]);
    }

}
/*comapring 2 arrays and increasing count value if there are any value in array2
are greater than array1*/
int main() {
    displayfunction();
    int array1[12];
    int array2[12];
    
}

你对变量作用域有根本性的误解

int main() {
    displayfunction();
    int array1[12];
    int array2[12];

}

这些数组仅在 main 中可用。如果你想让其他函数对它们进行操作,你必须将它们作为参数传递给那些函数。另外,在您尝试调用 displayFunction

时它们不存在

所以改变

void displayfunction(void)

void displayfunction(float array1[12], float array2[12])

然后在主要做

int main() {
   int a1[12];
    int a2[12];
    displayfunction(a1, a2);
}

请注意,我在这里更改了名称只是为了强调名称相同这一事实并不重要。