#include <stdio.h>
#define N 10
typedef struct
{
/*学号*/
int id;
/*各科成绩*/
float math;
float physics;
float English;
float Chinese;
float PE;
}student;
student s[]={{1,90,76,82,85,88},
{2,79,96,53,82,47},
{3,66,79,58,92,78},
{4,87,92,83,76,67},
{5,67,95,62,54,57},
{6,60,54,53,87,66},
{7,54,87,50,76,55},
{8,80,80,88,83,87},
{9,87,85,86,84,87},
{10,90,89,96,81,89}};
float math_average(student s[],int n)
{ int i;
float sum_math=0,average_math=0;
for(i=0;i<N;i++) //求10名学生数学成绩的平均值
sum_math+=s[i].math;
average_math=sum_math/n;
return average_math;
}
void fail(student s[],int n)
{
int flag=0,i;
float average;
for(i=0;i<n;i++) //找出10名学生中有两门以上成绩不及格的学生
{
average=(s[i].English+s[i].math+s[i].Chinese+s[i].PE+s[i].physics)/5;
if(s[i].Chinese<60)
flag++;
if(s[i].English<60)
flag++;
if(s[i].math<60)
flag++;
if(s[i].physics<60)
flag++;
if(s[i].PE<60)
flag++;
if(flag>2)
printf("\n学号为:%d\n语文成绩为:%.2f\t数学成绩为:%.2f\t英语成绩为:%.2f\t物理成绩为:%.2f\t体育成绩为:%.2f\t平均成绩为:%.2f\n",s[i].id,s[i].Chinese,s[i].math,s[i].English,s[i].physics,s[i].PE,average);
}
}
void success(student s[],int n)
{
int flag=0,i;
float average;
for(i=0;i<n;i++)
{
average=(s[i].English+s[i].math+s[i].Chinese+s[i].PE+s[i].physics)/5; //找出成绩优良的学生(平均成绩在85分以上或全部成绩在80分以上)
if(s[i].English>80)
flag++;
if(s[i].math>80)
flag++;
if(s[i].Chinese>80)
flag++;
if(s[i].PE>=80)
flag++;
if(s[i].physics>80)
flag++;
if(flag==5||average>85)
printf("\n学号:%d\n语文成绩:%.2f\t英语成绩:%.2f\t数学成绩:%.2f\t体育成绩:%.2f\t物理成绩:%.2f\t平均成绩:%.2f\n",s[i].id,s[i].Chinese,s[i].English,s[i].math,s[i].PE,s[i].physics,average);
}
}
void main()
{
/*调用求数学平均值函数*/
printf("数学的平均成绩为:\n%.2f\n",math_average(s,N));
/*挂科两门以上的人*/
printf("\n/*************************************/\n");
printf("两门成绩不合格的学生");
fail(s,N);
/*输出优良学生*/
printf("\n/*************************************/\n");
printf("成绩优良的学生");
success(s,N);
getchar();
}
```c
数学的平均成绩为:
76.00
/*************************************/
两门成绩不合格的学生
学号为:3
语文成绩为:92.00 数学成绩为:66.00 英语成绩为:58.00 物理成绩为:79.00 体育成绩为:78.00
平均成绩为::74.60
学号为:4
语文成绩为:76.00 数学成绩为:87.00 英语成绩为:83.00 物理成绩为:92.00 体育成绩为:67.00
平均成绩为::81.00
学号为:5
语文成绩为:54.00 数学成绩为:67.00 英语成绩为:62.00 物理成绩为:95.00 体育成绩为:57.00
平均成绩为::67.00
学号为:6
语文成绩为:87.00 数学成绩为:60.00 英语成绩为:53.00 物理成绩为:54.00 体育成绩为:66.00
平均成绩为::64.00
学号为:7
语文成绩为:76.00 数学成绩为:54.00 英语成绩为:50.00 物理成绩为:87.00 体育成绩为:55.00
平均成绩为::64.40
学号为:8
语文成绩为:83.00 数学成绩为:80.00 英语成绩为:88.00 物理成绩为:80.00 体育成绩为:87.00
平均成绩为::83.60
学号为:9
语文成绩为:84.00 数学成绩为:87.00 英语成绩为:86.00 物理成绩为:85.00 体育成绩为:87.00
平均成绩为::85.80
学号为:10
语文成绩为:81.00 数学成绩为:90.00 英语成绩为:96.00 物理成绩为:89.00 体育成绩为:89.00
平均成绩为::89.00
/*************************************/
成绩优良的学生
学号:9
语文成绩:84.00 英语成绩:86.00 数学成绩:87.00 体育成绩:87.00 物理成绩:85.00 平均成绩:85.80
学号:10
语文成绩:81.00 英语成绩:96.00 数学成绩:90.00 体育成绩:89.00 物理成绩:89.00 平均成绩:89.00