我想用三个一维数组来分别输入三个班级的15名学生,这个为什么代码老是出错?(语言-c语言)

#include <stdio.h>
int main()
{
float average(float array[],int n);
float i,j,k;
float score1[15];
float score2[15];
float score3[15];
for(i=0;i<15;i++)
scanf(%f,&score1[i]);
for(j=0;j<15;j++)
scanf(%f,&score2[j]);
for(k=0;k<15;k++)
scanf(%f,&score3[k]);
printf("is%6.2f\n",average(score1,15));
printf("%6.2f\n",average(score2,15));
printf("%6.2f\n",average(score3,15));
return 0;
}
float average(float array[],int n);
{ int m;
float aver,sum=array[0];
for(m=1,m<n;m++)
sum=sum+array[m];
aver=sum/n;
return(aver);
}

1、函数声明要写在main函数前面,不能写在main函数里面,不然你就得把整个函数的定义写到main函数前面

img

2、i、j、k要声明为 int 类型,它们只是用来计算循环的次数,没有第1.0次、第2.0次这种说法
3、定义函数不要写多分号,比如图中的 float average(float array[], int n);

img


4、函数返回值不用加括号

img

修改完代码如下

#include <stdio.h>

float average(float array[], int n);
int main()
{
    int i, j, k;
    float score1[15];
    float score2[15];
    float score3[15];
    for (i = 0; i < 15; i++)
        scanf("%f", &score1[i]);

    for (j = 0; j < 15; j++)
        scanf("%f", &score2[j]);

    for (k = 0; k < 15; k++)
        scanf("%f", &score3[k]);

    printf("is%6.2f\n", average(score1, 15));
    printf("%6.2f\n", average(score2, 15));
    printf("%6.2f\n", average(score3, 15));
    return 0;
}

float average(float array[], int n)
{ 
    int m;
    float aver, sum = array[0];
    for (m = 1; m < n; m++)
        sum = sum + array[m];
    aver = sum / n;
    return aver;
}