代码不能运行,错误在哪里

在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1到100分的整数。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写代码实现该计分程序。
**输入格式要求:"%d" 提示信息:"Input score %d\n"
**输出格式要求:"Canceled max score: %d\nCanceled min score: %d\n" "Average score: %d\n"
程序运行示例如下:
Input score 1
98
Input score 2
87
Input score 3
89
Input score 4
84
Input score 5
83
Input score 6
87
Input score 7
89
Input score 8
92
Input score 9
93
Input score 10
95
Canceled max score: 98
Canceled min score: 83
Average score: 89

#include <stdio.h>
int number(int score[]);
int Max(int score[]);
int Min(int score[]);
int Average(int score[]);
int main()
{
    int score[10];
    number(score[10]);
    printf("Canceled max score: %d\nCanceled min score: %d\n",Max(score[10]),Min(score[10]));
    printf("Average score: %d\n",Average(score[10]));
    return 0;
}
int Max(int score[])//找出最大数
{
    int i,j,k;
    for(i=0;i<9;i++)
    {
       for(j=i+1;j<10;j++)
       {
           if(score[i]>score[j])
           {
               score[j]=score[i];
           }

       }
    }
    return score[9];
}
int Min(int score[])//找出最小数
{
    int i,j;
    for(i=0;i<9;i++)
    {
       for(j=i+1;j<10;j++)
       {
           if(score[i]<score[j])
           {
               score[j]=score[i];
           }

       }
    }
    return score[9];
}
int Average(int score[])//去除最大最小数后,求平均值
{
    int sum=0;
    int i,k;
    for(i=0;i<=9;i++)
    {
        sum=sum+score[i];
    }
    k=(sum-Max(score[10])-Min(score[10]))/8;
    return k;
}
int number(int score[])//记录十个数
{
    int i;
    for(i=1;i<=10;i++)
    {
        printf("Input score %d\n",i);
        scanf("%d",&score[i-1]);
    }
}


题主代码修改处见注释,供参考:

#include <stdio.h>
int number(int score[]);
int Max(int score[]);
int Min(int score[]);
int Average(int score[]);
int main()
{
    int score[10];
    number(score); //number(score[10]);
    printf("Canceled max score: %d\nCanceled min score: %d\n",Max(score),Min(score));
    //printf("Canceled max score: %d\nCanceled min score: %d\n",Max(score[10]),Min(score[10]));
    printf("Average score: %d\n",Average(score));
    //printf("Average score: %d\n",Average(score[10]));

    return 0;
}
int Max(int score[])//找出最大数
{
    int i,j,k = score[0];
    for(i=0;i<10;i++) //for(i=0;i<9;i++)
    {
                      //for(j=i+1;j<10;j++)
                      //{
           if(score[i]>k) //if(score[i]>score[j])
           {
               k = score[i];//score[j]=score[i];
           }

                      //}
    }
    return k;         //score[9];
}
int Min(int score[])//找出最小数
{
    int i,j = score[0];
    for(i=0;i<10;i++)       //for(i=0;i<9;i++)
    {
                             //for(j=i+1;j<10;j++)
                             //{
           if(score[i] < j)  //if(score[i]<score[j])
           {
               j = score[i]; //score[j]=score[i];
           }

                             //}
    }
    return j;                 //score[9];
}
int Average(int score[])//去除最大最小数后,求平均值
{
    int sum=0;
    int i,k;
    for(i=0;i<=9;i++)
    {
        sum=sum+score[i];
    }
    k=(sum-Max(score)-Min(score))/8;
    //k=(sum-Max(score[10])-Min(score[10]))/8;
    return k;
}
int number(int score[])//记录十个数
{
    int i;
    for(i=1;i<=10;i++)
    {
        printf("Input score %d\n",i);
        scanf("%d",&score[i-1]);
    }
}

感觉你的做法有点繁琐了,建议直接对10个数据排序,这样数组的首尾就分别是最大最小了,参考代码:

#include<stdio.h>
int main()
{
    int i, j, temp, sum = 0, len, a[10];
    double ave;
    for (i = 0; i < 10; i++)
    {
        printf("Input score %d:\n", i + 1);
        scanf_s("%d", &a[i]);
    }
    len = i;
    for (i = 0; i < len - 1; i++)       //排序
       {
           for (j = 0; j < len - 1 - i; j++)
           {
               if (a[j] > a[j + 1])
               {
                   temp = a[j];
                   a[j] = a[j+1];
                   a[j+1] = temp;
               }
           }
       }
    for (i = 1; i < len - 1; i++)
        sum += a[i];
    ave = 1.0 * sum / (len - 2);
    printf("Canceled max score:%d\n", a[len-1]);
    printf("Canceled min score:%d\n", a[0]);
    printf("Average score: %d\n", (int)ave);
    return 0;
}