1997-c-三

#include <stdio.h>
#include <stdlib.h>
//不能使用数组,但是可以用malloc生成一串连续的存储单元

typedef struct StuInfo
{
    int grades;
    int stu_id;
}StuInfo;

int main()
{
    int N;//输入的学生人数
    StuInfo *buffer = NULL;//指向连续的存储空间
    int i = 0;
    int sum = 0;
    int averge = 0;

    scanf("%d", &N);

    printf("%d\n", N);

    buffer =(StuInfo *)malloc(sizeof(StuInfo) * N);

//输入学生信息,并统计学生成绩的总和
    for (i = 0 ; i < N; i++)
    {
        printf("Enter student information inluding grades and stu_id.\n");
        scanf("%d%d", &((buffer + i)->grades), &((buffer + i)->stu_id));
        sum += (buffer + i)->grades;
    }
    averge = sum / N;//计算学生的平均值

//求大于平均分的学生的成绩,并输入成绩和学号
    for (i = 0; i < N; i++)
    {
        if ((buffer + i)->grades >= averge)
        {
            printf("%d %d\n", (buffer + i)->grades, (buffer + i)->stu_id);
        }
    }




}