c语言编码出现图示错误,提醒“paixu使指针从整数变为不进行类型整数”

输入10个学生的C语言成绩(假设成绩为整数值),求最高成绩、最低成绩和平均值。
**输入格式要求:"%d" 提示信息:"请输入10个学生的C成绩:\n"
**输出格式要求:
"10个学生的C成绩分别为:\n"
"%d\t"
10个成绩的最后输出一个"\n"
"最高成绩是%d,是第%d个学生\n"
"最低成绩是%d,是第%d个学生\n"
"10名学生的C成绩的平均分为:%.2f\n"
程序运行示例如下:
请输入10个学生的C成绩:
80 90 93 78 83 67 79 60 64 45
10个学生的C成绩分别为:
80 90 93 78 83 67 79 60 64 45
最高成绩是93,是第3个学生
最低成绩是45,是第10个学生
10名学生的C成绩的平均分为:73.90

#include <stdio.h>
#include <stdlib.h>
void paixu(int numbers[10],int xuehao[10]);
float average(int numbers[10]);
int main()
{
   int numbers[10];
   int xuehao[10]={1,2,3,4,5,6,7,8,9,10};
   printf("请输入10个学生的C成绩:\n");
   int i;
   for(i=0;i<10;i++)
   {
       scanf("%d",&numbers[i]);
   }
   paixu(numbers[10],xuehao[10]);
   float a;
   a=average(numbers[10]);
   printf("最高成绩是%d,是第%d个学生\n",numbers[0],xuehao[0]);
   printf("最低成绩是%d,是第%d个学生\n",numbers[9],xuehao[9]);
   printf("10名学生的C成绩的平均分为:%.2f\n",a);
    return 0;
}
void paixu(int numbers[10],int xuehao[10])
{
    int t,j,k,m;
    for(j=0;j<10;j++)
    {
        for(k=0;k<10-j-1;k++)
        {
            if(numbers[k]<numbers[k+1])
            {
                t=numbers[k];
                numbers[k]=numbers[k+1];
                numbers[k+1]=t;
                m=xuehao[k];
                xuehao[k]=xuehao[k+1];
                xuehao[k+1]=m;
            }
        }
    }
}
float average(int numbers[10])
{
    int i;
    int sum=0;
    float h;
    for(i=0;i<10;i++)
    {
       sum=sum+numbers[i];
    }
    h=(float)sum/10;
    return h;
}


img

函数的形参定义 ,函数的调用,写法问题,修改见注释,供参考:

#include <stdio.h>
#include <stdlib.h>
void paixu(int numbers[],int xuehao[]);
//void paixu(int numbers[10],int xuehao[10]);
float average(int numbers[]);
//float average(int numbers[10]);
int main()
{
   int numbers[10];
   int xuehao[10]={1,2,3,4,5,6,7,8,9,10};
   printf("请输入10个学生的C成绩:\n");
   int i;
   for(i=0;i<10;i++)
   {
       scanf("%d",&numbers[i]);
   }
   paixu(numbers,xuehao); //paixu(numbers[10],xuehao[10]);
   float a;
   a=average(numbers);    //average(numbers[10]);
   printf("最高成绩是%d,是第%d个学生\n",numbers[0],xuehao[0]);
   printf("最低成绩是%d,是第%d个学生\n",numbers[9],xuehao[9]);
   printf("10名学生的C成绩的平均分为:%.2f\n",a);

   return 0;
}
void paixu(int numbers[],int xuehao[])
//void paixu(int numbers[10],int xuehao[10])
{
    int t,j,k,m;
    for(j=0;j<10;j++)
    {
        for(k=0;k<10-j-1;k++)
        {
            if(numbers[k]<numbers[k+1])
            {
                t=numbers[k];
                numbers[k]=numbers[k+1];
                numbers[k+1]=t;
                m=xuehao[k];
                xuehao[k]=xuehao[k+1];
                xuehao[k+1]=m;
            }
        }
    }
}
float average(int numbers[])
//float average(int numbers[10])
{
    int i;
    int sum=0;
    float h;
    for(i=0;i<10;i++)
    {
       sum=sum+numbers[i];
    }
    h=(float)sum/10;
    return h;
}

调用函数传递数组时,传递数组名就可以了,代码修改如下:

#include <stdio.h>
#include <stdlib.h>
void paixu(int numbers[10],int xuehao[10]);
float average(int numbers[10]);
int main()
{
   int numbers[10];
   int xuehao[10]={1,2,3,4,5,6,7,8,9,10};
   printf("请输入10个学生的C成绩:\n");
   int i;
   for(i=0;i<10;i++)
   {
       scanf("%d",&numbers[i]);
   }
   paixu(numbers,xuehao);
   float a;
   a=average(numbers);
   printf("最高成绩是%d,是第%d个学生\n",numbers[0],xuehao[0]);
   printf("最低成绩是%d,是第%d个学生\n",numbers[9],xuehao[9]);
   printf("10名学生的C成绩的平均分为:%.2f\n",a);
    return 0;
}
void paixu(int numbers[10],int xuehao[10])
{
    int t,j,k,m;
    for(j=0;j<10;j++)
    {
        for(k=0;k<10-j-1;k++)
        {
            if(numbers[k]<numbers[k+1])
            {
                t=numbers[k];
                numbers[k]=numbers[k+1];
                numbers[k+1]=t;
                m=xuehao[k];
                xuehao[k]=xuehao[k+1];
                xuehao[k+1]=m;
            }
        }
    }
}
float average(int numbers[10])
{
    int i;
    int sum=0;
    float h;
    for(i=0;i<10;i++)
    {
       sum=sum+numbers[i];
    }
    h=(float)sum/10;
    return h;
}
 
 


#include <stdio.h>
#include <stdlib.h>
void paixu(int numbers[10], int xuehao[10]);
float average(int numbers[10]);
int main()
{
    int numbers[10];
    int xuehao[10] = { 1,2,3,4,5,6,7,8,9,10 };
    printf("请输入10个学生的C成绩:\n");
    int i;
    for (i = 0; i < 10; i++)
    {
        scanf("%d", &numbers[i]);
    }
    paixu(numbers, xuehao);
    float a;
    a = average(numbers);
    printf("最高成绩是%d,是第%d个学生\n", numbers[0], xuehao[0]);
    printf("最低成绩是%d,是第%d个学生\n", numbers[9], xuehao[9]);
    printf("10名学生的C成绩的平均分为:%.2f\n", a);
    return 0;
}
void paixu(int numbers[10], int xuehao[10])
{
    int t, j, k, m;
    for (j = 0; j < 10; j++)
    {
        for (k = 0; k < 10 - j - 1; k++)
        {
            if (numbers[k] < numbers[k + 1])
            {
                t = numbers[k];
                numbers[k] = numbers[k + 1];
                numbers[k + 1] = t;
                m = xuehao[k];
                xuehao[k] = xuehao[k + 1];
                xuehao[k + 1] = m;
            }
        }
    }
}
float average(int numbers[10])
{
    int i;
    int sum = 0;
    float h;
    for (i = 0; i < 10; i++)
    {
        sum = sum + numbers[i];
    }
    h = (float)sum / 10;
    return h;
}