一个函数有关问题

一个函数问题
注意看备注:

Assembly code
#include <stdio.h>

float Max = 0, Min = 0;

void main()
{
    float arra(float ary[], float n);
    float srry[10], sum;
    int i;
    for (i = 0; i < 10; i++)
    {
        scanf("%f", &srry[i]);
    }
    sum = arra(srry,10);
    printf("Max = %f, Min = %f, Sum = %f", Max, Min, sum);
}
float arra(float array[], float n)
{
    int i;
    float aver,sum = array[0];
    /*为什么float aver,sum = array[0] 和Max = Min = array[0]顺序调换了就出错?*/
    Max = Min = array[0];

    for (i = 1; i < 10; i++)
    {
        if (array[i] > Max)
            Max = array[i];
        else if (array[i] < Min)
            Min = array[i];
        sum += array[i];
    }
    aver = sum / n;
    return aver;
}


------解决方案--------------------
C应该是先声明?后执行的吧?不符合C的语法?你想想是不是这么个事。要是换C 编译就没问题了
------解决方案--------------------
变量声明放开头
------解决方案--------------------
如果是编译就报错的话,还真就是楼上说的这种情况,如果文件是.c文件的话,变量必须要都先定义在最前边。。。
------解决方案--------------------
变量是要先定义,再使用
------解决方案--------------------
你是在什么编译环境下编译的,如果实在vs2008环境下编译的话,这个文件的后缀名是.c还是.cpp?
如果使用.c后缀名,系统默认使用c语言规范编译。变量声明必须在可执行语句之前,如果变量声明在可执行语句后面就会出现编译错误。

如果使用.cpp后缀名,系统默认使用c++规范编译,则不会有这个问题,可以正常编译运行。