某班级12名学生分为3组,每组4名同学。按要求完成下列任务:

(1)随机产生全部同学的成绩,60~100分
(2)计算每组同学的平均成绩并输出
(3)计算全班的平均成绩并输出
(4)对每组同学成绩进行排序并输出
(5)对全班成绩进行排序并输出
重点:合理的数据结构;函数抽象;实参数组名;一维数组与二维数组的关系;

用3*4的二维数组. 以随机数填充,写两个函数计算机平均成绩和进行排序
二维数组就是连续的多个一维数组
你题目的解答代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define Y 3
#define X 4

void out(int a[Y][X])
{
    int i,j;
    for( i=0; i<Y; i++ )
    {
        for ( j = 0; j < X; j++)
            printf("%d ", a[i][j]);
        printf("\n");
    }
}


double avg(int *a,int n)
{
    int i,j;
    double sum;
    sum = 0;
    for( i=0; i<n; i++ )
        sum += a[i];
    return sum/n;
}

void sort(int a[],int n)
{
    int i,j;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++)
            if(a[j] > a[j+1])
            {
                int t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
}

int main()
{
    int a[Y][X];
    srand((unsigned)time(NULL));
    int i,j;
    for( i=0; i<Y; i++ )
    {
        for ( j = 0; j < X; j++)
           a[i][j] = rand() % 41 + 60;
    }
    out(a);
    for( i=0; i<Y; i++ )
    {
        printf("第%d组的平均成绩:%lf\n", i+1,avg(a[i],X));
    }
    printf("全班的平均成绩:%lf\n",avg(a,Y*X));
    for( i=0; i<Y; i++ )
    {
        sort(a[i],X);
    }
    printf("各组的成绩排序:\n");
    out(a);
    sort(a,Y*X);
    printf("全班的成绩排序:\n");
    out(a);

    return 0;
}

如有帮助,望采纳!谢谢!