/*某班有学生3人,开设五门课程,分别用三个函数实现如下操作

将下列程序补充完整并运行调试
/某班有学生3人,开设五门课程,分别用三个函数实现如下操作:
(1)求各门课程的平均分;
(2)找出有两门以上不及格的学生,并输出其学号和不及格课程的成绩;
(3)找出五门课平均成绩在85~90分的学生。
/

#include <stdio.h>
   float ave(int *a, int m)  //第m门课程的平均分
   {
       int i, s = 0;
       float aver;
       for (i = 0; i < 3; i++)
       {
           s = s+*(a+i*6+m);
       }
                         ;
       return aver;
   }
   void nopass(int *a, int n) //判断第n个学生是否有两门不及格,若是输出其不及格成绩
   {
       int j, flag = 0;
       for (j = 1; j < 6; j++)
       {
           if (*(a+6*n+j) < 60)
           {
                        ;
           }
       }
       if (flag >= 2)
       {
           printf ("%d:", *(a+6*n));
           for (j = 1; j < 6; j++)
           {
               if (*(a+6*n+j) < 60)
               {
                   printf ("%d\t", *(a+6*n+j));
               }
               else
               {
                   printf ("--\t");
               }
           }
           printf ("\n");
       }
   }
   void over (int *a, int n)     //计算第n个同学的平均分
   {
       int i, sum = 0;
       float  aver;
       for (i = 1; i < 6; i++)
       {
           sum = sum+*(a+6*n+i);
       }
                         ;
       if (aver >= 85 && aver <= 90)
       {
           printf ("%d的平均分为:%3.2f\n", *(a+6*n), aver);
       }
   }
   void main ()
   {
        int i;
       int p[3][6] = {{1001, 78, 85, 90, 98, 84}, 
       {1002, 87, 49, 89, 78, 57}, {1003, 95, 96, 29, 48, 78}};    //p[][0]中是学号
       int *a = p[0];
       printf ("\n五门课程的平均分分别为:\n");
       for (i = 1; i < 6; i++)
       {
           printf ("%3.2f\t",                );
       }
       printf ("\n有两门及两门以上不及格的同学:\n");
       for (i = 0; i < 3; i++)
       {
                            ;
       }
       printf ("五门课程平均成绩在85到90之间的同学:\n");
       for (i = 0; i < 3; i++)
       {
           over (a, i);
       }
   }

#include <stdio.h>

float ave(int *a, int m)  //第m门课程的平均分
{
int i, s = 0;
float aver;
for (i = 0; i < 3; i++)
{
s = s + *(a + i * 6 + m);
}
aver = s / 3.0;
return aver;
}

void nopass(int a, int n) //判断第n个学生是否有两门不及格,若是输出其不及格成绩
{
int j, flag = 0;
for (j = 1; j < 6; j++)
{
if ((a + 6 * n + j) < 60)
{
flag++;
}
}
if (flag >= 2)
{
printf("%d:", (a + 6 * n));
for (j = 1; j < 6; j++)
{
if ((a + 6 * n + j) < 60)
{
printf("%d    ", *(a + 6 * n + j));
}
else
{
printf("--\t");
}
}
printf("\n");
}
}

void over(int *a, int n)     //计算第n个同学的平均分
{
int i, sum = 0;
float aver;
for (i = 1; i < 6; i++)
{
sum = sum + *(a + 6 * n + i);
}
aver = sum / 5.0;
if (aver >= 85 && aver <= 90)
{
printf("%d的平均分为:%3.2f
", *(a + 6 * n), aver);
}
}

int main()
{
int i;
int p[3][6] = {{1001, 78, 85, 90, 98, 84},
{1002, 87, 49, 89, 78, 57},
{1003, 95, 96, 29, 48, 78}}; //p[][0]中是学号
int *a = p[0];
printf("\n五门课程的平均分分别为:\n");
for (i = 1; i < 6; i++)
{
printf("%3.2f    ", ave(a, i));
}
printf("\n有两门及两门以上不及格的同学:\n");
for (i = 0; i < 3; i++)
{
nopass(a, i);
}
printf("五门课程平均成绩在85到90之间的同学:\n");
for (i = 0; i < 3; i++)
{
over(a, i);
}
return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^