为什么输出结果老是为0,求解答,感谢。

#include
void input(float arr[],int n)
{
int i; //数组类型修改成float
for (i=0; i<n; i++)
scanf("%f", &arr[i]);
}
//(2)输出一维数组
void output(float arr[],int n)
{
int i;
for(i=0; i<n; i++)
{

    printf("%0.1f ",&arr[i]);
    if(i%5==4)
        printf("\n");
}

}
//(3)计算平均分
float average(float arr[],int n)
{
float sum=0.0; int i;/*保存成绩总和*/
for (i=0; i<n; i++) /*求成绩总和*/
sum+=arr[i];
return sum/n;
}
int main()
{
float score[20]; /*存放20个学生的成绩*/
printf("请输入20个学生的成绩:\n");
input(score,20);
printf("学生成绩依次为:\n");
output(score,20);
printf("\n\n平均成绩为:%0.1f\n",average(score,20)); /*输出平均成绩*/
return 0;
}

void output(float arr[],int n)
{
int i;
for(i=0; i<n; i++)
{

printf("%0.1f ",&arr[i]);
if(i%5==4)
    printf("\n");

}
}
output输出函数中的printf("%0.1f ",&arr[i]);用法错误,应改成printf("%0.1f ",arr[i]);
要去掉&符号

return sum/n;
->return sum/(float)n;

输入
return sum/n;
->return sum/(float)n;