3、写一个程序,定义一个学生结构体,至少要含4个数据项,其中有一项用来保存学生成绩。用此结构体存储班级上的所有学生信息

/*要求写一个程序,至少含有四个函数,分别实现:(40分)
(1)输入学生信息
(2)输出学生信息
(3)求出班上最高分、最低分和平均分
(4)显示最高分、最低分同学和成绩大于平均分的所有学生信息。
*/
#include 
#include 
typedef struct
{
    char name[10];
    char xuehao[12];
    char sex[12];
    int age;
    int score;
}StuDent;
void input(StuDent *T,int n)//输入函数
{
    int i;
    printf("输入:姓名,学号,性别, 年龄和成绩\n");
    for(i=0;i"%s%s%s%d%d",T[i].name,T[i].xuehao,T[i].sex,&T[i].age,&T[i].score);


}
void output(StuDent *T,int n)//输出函数
{
    int i;
    for(i=0;iprintf("%s\t%s\t%s\t%d\t%d\n",T[i].name,T[i].xuehao,T[i].sex,T[i].age,T[i].score);
    }
}
float func(StuDent *T,int n,int *max1,int *min1)
{
    int max=-999,min=999,sum=0;
    int i,j;
    float average;
        for(j=0;jif(T[j].score>max)
            {
                max=T[j].score;
                (*max1=j);
            }
        }
        for(j=0;jif(T[j].score*min1=j);
            }
        }
    for(i=0;i//求和算出平均值
    return average;
}
void Show(StuDent *T,int n,int average,int max1,int min1)//显示最高分最低分和高于平均分的函数 Show();
{
    int i;
    printf("最高分为:%d\n",T[max1].score);
    printf("最低分为:%d\n",T[min1].score);
    printf("高于平均分的学生信息为:\n");
    for(i=0;iif(T[i].score>average)
            printf("%s\t%s\t%s\t%d\t%d\n",T[i].name,T[i].xuehao,T[i].sex,T[i].age,T[i].score);
    }
}


int main()
{
    StuDent *T;
    int n,max1,min1;
    float average;
    printf("录入学生人数:\n");
    scanf("%d",&n);
    T=(StuDent *)malloc(sizeof(StuDent)*n);
    input(T,n);//调用输入函数
    printf("\n");
    printf("输出信息:\n");
    output(T,n);//调用输出函数
    printf("\n");
    average=func(T,n,&max1,&min1);//接收返回的平均分;&max1,和&min1,直接传地址就不需要返回值;
    Show(T,n,average,max1,min1);
}

输出结果
3、写一个程序,定义一个学生结构体,至少要含4个数据项,其中有一项用来保存学生成绩。用此结构体存储班级上的所有学生信息_第1张图片

你可能感兴趣的:(3、写一个程序,定义一个学生结构体,至少要含4个数据项,其中有一项用来保存学生成绩。用此结构体存储班级上的所有学生信息)