#include
#define N 30
struct {
int id;
char name[10];
int sore;
}stu[N],st;
int main()
{
void selectMax_1();
void selectMax_2();
void fun_3();
int i;
puts("C语言作业:");
for(i = 0;i < N;i++){
printf("请输入第%d个学生的id 姓名 成绩:\n",i+1);
scanf("%d %s %d",&stu[i].id,&stu[i].name,&stu[i].sore);
}
selectMax_1();
selectMax_2();
fun_3();
return 0;
}
void selectMax_1(){
int i, max_sore = 0;
for(i = 0;i < N;i++){
if(stu[i].sore > max_sore)
max_sore = stu[i].sore;
}
printf("最高的成绩是: %d\n",max_sore);
}
void selectMax_2(){
int i;
st.sore = 0;
for(i = 0;i < N;i++){
if(stu[i].sore > st.sore)
st = stu[i];
}
printf("最高成绩的学生信息: id = %d name = %s sore = %d \n",st.id,st.name,st.sore);
}
void fun_3(){
int i,count;
float ave,differ = 101 ;
for(i = 0;i < N;i++){
count += stu[i].sore;
}
ave = (float)count / (float)N;
for(i = 0;i < N;i++){
if(differ > (stu[i].sore - ave)){
differ = stu[i].sore - ave;
st = stu[i];
}
}
printf("最接近平均分的学生信息: id = %d name = %s sore = %d \n",st.id,st.name,st.sore);
}
写完了,有不懂的地方或是要改的地方可以回复,毕竟有太多的算法可以实现。